(3 jawaban)
Tutup 8 tahun yang lalu.
Setiap kali saya ingin memindahkan ribuan file ke folder baru, saya selalu menghadapi masalah yang sama.
> mkdir my_folder
> mv * my_folder
mv: cannot move 'my_folder to a subdirectory of itself 'my_folder'
Meskipun menurut saya kesalahan di atas tidak berbahaya (bukan? ) Saya ingin tahu apakah ada cara untuk menghindarinya.
Jika itu penting, saya tertarik pada solusi dalam zsh atau solusi yang bekerja dengan baik di berbagai shell.
Jawaban yang Diterima:
Di zsh, dengan extended_glob
opsi diaktifkan, Anda dapat menggunakan ~
untuk mengecualikan pola dari gumpalan, sehingga Anda dapat menggunakan:
setopt extended_glob
mv -- *~my_folder my_folder
Atau gunakan operator negasi (masih dengan extended_glob
):
mv -- ^my_folder my_folder
Gunakan kurung kurawal untuk menghindari mengetik nama direktori dua kali:
mv -- {^,}my_folder
Di bash (untuk pencari jawaban lain yang menggunakannya), Anda dapat menggunakan gumpalan diperpanjang gaya Ksh:
# If it's not already enabled
shopt -s extglob
mv -- !(my_folder) my_folder
Anda juga dapat menggunakan sintaks itu di zsh
jika Anda mengaktifkan ksh_glob
pilihan.