Cara cepat adalah dengan memodifikasi nama file tux sehingga perintah pemindahan Anda tidak akan cocok.
Misalnya:
mv Tux.png .Tux.png
mv * ~/somefolder
mv .Tux.png Tux.png
Masukkan yang berikut ke .bashrc
Andashopt -s extglob
Itu memperluas regex. Anda kemudian dapat memindahkan semua file kecuali satu per
mv !(fileOne) ~/path/newFolder
Pengecualian sehubungan dengan perintah lain
Perhatikan bahwa, dalam menyalin direktori, forward-flash tidak dapat digunakan dalam nama seperti yang diperhatikan di utas Mengapa extglob kecuali melanggar kondisi kecuali?:
cp -r !(Backups.backupdb) /home/masi/Documents/
jadi Backups.backupdb/
salah di sini sebelum negasi dan saya tidak akan menggunakannya baik dalam memindahkan direktori karena risiko penggunaan yang salah lalu menggumpal dengan perintah lain dan kemungkinan pengecualian lainnya.
Jika Anda menggunakan bash dan memiliki extglob
kumpulan opsi shell (yang biasanya terjadi):
mv ~/Linux/Old/!(Tux.png) ~/Linux/New/
Saya akan menggunakan cara find &xargs tradisional:
find ~/Linux/Old -maxdepth 1 -mindepth 1 -not -name Tux.png -print0 |
xargs -0 mv -t ~/Linux/New
-maxdepth 1
membuatnya tidak mencari secara rekursif. Jika Anda hanya peduli dengan file, Anda dapat mengatakan -type f
. -mindepth 1
membuatnya tidak menyertakan ~/Linux/Old
jalan itu sendiri ke dalam hasil. Bekerja dengan nama file apa pun, termasuk yang berisi baris baru tersemat.
Satu komentar mencatat bahwa mv -t
opsi mungkin adalah ekstensi GNU. Untuk sistem yang tidak memilikinya
find ~/Linux/Old -maxdepth 1 -mindepth 1 -not -name Tux.png \
-exec mv '{}' ~/Linux/New \;