Globbing desenleri ve joker karakterlerle karşılaştım ve özellikle ilgimi çekti [!].
Bu yapı, yapıya benzer
[!], köşeli parantez içindeki herhangi bir karakteri eşleştirmek yerine,[ve arasında listelenmediği sürece herhangi bir karakterle eşleşir].
rm myfile [!192]
Yukarıdaki inanıyorum yukarıdaki 192 adında herhangi bir / tüm dosyaları dışında herhangi bir / tüm dosyaları kaldıracaktır.
Ancak bunun bir dosya uzantısı ve özellikle çoklu koşullar ile doğru kullanımı hakkında endişeliyim.
Böyle bir durumda uygun sözdizimi ne olur?
rm myfile [!.gif .csv. mp3]
veya
rm myfile [!.gif !.csv !.mp3]
Benim endişem nokta yanlış yerleştirilmiş olabilir, ve böylece (ki kesinlikle bunlardan herhangi biri olacak?) İle herhangi bir dosya .belirli dosyaları manipüle neden olmak için çalışırken, manipüle olurdu.
Bu yapı, yapıya benzer [ ], köşeli parantez içindeki herhangi bir karakteri eşleştirmek yerine, [ve arasında listelenmediği sürece herhangi bir karakterle eşleşir ].
( http://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm adresinden alıntılanmıştır )
Şimdi; bana göre o zaman tekil !bir yeterlidir ve bundan sonraki tüm değerler aralık dahilindedir.
[!]benzer ama değil gibi görünüyor[!]
^aynı anlama sahip olduğundan bahsetmeye değer !, bu nedenle tam olarak olduğu gibi [^a]hariç tutulur : [karakterini izleyen ilk karakter bir! veya bir ^ varsa, kapalı olmayan herhangi bir karakter eşleştirilir. ( )a[!a]man bash
rm myfile [!192]kaldıracak myfile, hem de herhangi bir tek karakterlik dosya adında değil 1, 9ya 2.
ls my-patternecho my-commandrm