ผมได้มาในรูปแบบ globbing [!]และสัญลักษณ์และน่าสนใจโดยเฉพาะให้ฉันเป็น
สร้างนี้มีความคล้ายคลึงกับ
[!]การสร้างยกเว้นมากกว่าที่ตรงกับตัวอักษรใดในวงเล็บก็จะตรงกับตัวอักษรใด ๆ ตราบใดที่มันไม่ได้อยู่ระหว่างและ[]
rm myfile [!192]
ฉันเชื่อว่าข้างต้นจะลบไฟล์ใด ๆ / ทั้งหมดยกเว้นไฟล์ใด ๆ / ทั้งหมดที่มี 192 ในชื่อของพวกเขา
ฉันกังวลเกี่ยวกับการใช้งานที่เหมาะสมกับส่วนขยายไฟล์และโดยเฉพาะอย่างยิ่งในหลาย ๆ เงื่อนไข
สิ่งที่จะเป็นไวยากรณ์ที่เหมาะสมในสถานการณ์เช่นนี้?
rm myfile [!.gif .csv. mp3]
หรือ
rm myfile [!.gif !.csv !.mp3]
ความกังวลของฉันคือช่วงเวลานั้นอาจถูกวางผิดตำแหน่งและดังนั้นไฟล์ใด ๆ ที่มี.(ซึ่งจะเป็นไฟล์ใดไฟล์หนึ่ง) จะถูกจัดการเมื่อฉันพยายามทำให้เกิดการจัดการไฟล์เฉพาะ
สร้างนี้มีความคล้ายคลึงกับ[ ]การสร้างยกเว้นมากกว่าที่ตรงกับตัวอักษรใดในวงเล็บก็จะตรงกับตัวอักษรใด ๆ ตราบใดที่มันไม่ได้อยู่ระหว่างและ[]
(อ้างจากhttp://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm )
ตอนนี้; สำหรับฉันแล้วแนะนำว่าเอกพจน์!นั้นเพียงพอแล้วและค่าทั้งหมดในนั้นจะอยู่ในช่วง
[!]คล้ายกัน แต่ไม่ชอบ[!]
^มีความหมายเหมือนกัน!ในบริบทนี้ดังนั้นจึง[^a]แยกออกaเหมือน[!a]: ถ้าตัวละครตัวแรกที่ตามหลัง [คือ! หรือ a ^ จากนั้นอักขระที่ไม่ได้อยู่ในเครื่องหมายจะถูกจับคู่ ( man bash)
rm myfile [!192]จะลบmyfileเช่นเดียวกับไฟล์ใด ๆ ตัวเดียวไม่ได้ตั้งชื่อ1, หรือ9 2
ls my-patternหรือecho my-commandเพื่อตรวจสอบว่า globbing จะทำในแบบที่คุณต้องการก่อนที่จะใช้rm