ผมได้มาในรูปแบบ 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