Saya telah menemukan pola globbing dan wildcard dan yang menarik bagi saya adalah [!].
Konstruk ini mirip dengan
[!]konstruk, kecuali daripada mencocokkan karakter apa pun di dalam tanda kurung, itu akan cocok dengan karakter apa pun, asalkan tidak terdaftar antara[dan].
rm myfile [!192]
Di atas saya percaya akan menghapus semua file, kecuali untuk semua file yang memiliki 192 nama.
Namun saya khawatir tentang penggunaan yang tepat dari ini dengan ekstensi file, dan dalam beberapa kondisi tertentu.
Apa yang akan menjadi sintaksis yang tepat dalam situasi seperti itu?
rm myfile [!.gif .csv. mp3]
atau
rm myfile [!.gif !.csv !.mp3]
Kekhawatiran saya adalah bahwa periode mungkin salah tempat, dan file apa pun dengan .(yang akan menjadi salah satu dari mereka?) Kemudian akan dimanipulasi, ketika saya berusaha menyebabkan manipulasi file tertentu.
Konstruk ini mirip dengan [ ]konstruk, kecuali daripada mencocokkan karakter apa pun di dalam tanda kurung, itu akan cocok dengan karakter apa pun, asalkan tidak terdaftar antara [dan ].
(dikutip dari http://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm )
Sekarang; bagi saya yang menyarankan maka singular !sudah cukup, dan semua nilai di dalamnya terkandung dalam kisaran.
[!]itu serupa tetapi tidak seperti[!]
^memiliki arti yang sama persis seperti !dalam konteks ini, karena itu [^a]mengecualikan apersis seperti [!a]: Jika karakter pertama yang mengikuti [adalah a! atau ^ maka setiap karakter yang tidak tertutup dicocokkan. ( man bash)
rm myfile [!192]akan menghapus myfile, serta setiap file tunggal-karakter tidak bernama 1, 9atau 2.
ls my-patternatauecho my-commanduntuk memeriksa apakah globbing dilakukan seperti yang Anda inginkan, sebelum menjalankanrm