มีสถานการณ์มากมายที่การใช้ a *
หลีกเลี่ยงไม่ได้เช่นrm -rf *
ในโฟลเดอร์ที่เก็บโฟลเดอร์ย่อยและไฟล์หลายพันรายการ
แต่ถ้าคุณต้องการแยกไฟล์หรือโฟลเดอร์เพียงหนึ่งหรือสองไฟล์ออกจากrm
คำสั่ง ฉัน googled ทางของรอบและพบเพียงการแก้ปัญหาที่มีความซับซ้อนค่อนข้างชอบfind . -depth -not \( -name 'one' -o -name 'two' \
-o -name 'three' \) -exec rm {} \;
ตามที่ระบุไว้ที่นี่
มีความเป็นไปได้find
ไหมที่จะทำสิ่งนี้ในวิธีที่ง่ายกว่า - โดยไม่ต้องอ้อมว่า? เช่นrm -rf --exclude='one' --exclude='two' --exclude='three' *
ใน rsync หรือเพียงแค่rm -rf -e 'one','two','three' *
?
แม้อาจจะเป็นไปได้โดยทั่วไปจะไม่รวมสิ่งจาก*
(คำสั่งอื่น ๆ จึงชอบcp
, mv
... ไม่ได้มีการดำเนินการของตัวเอง)? มีอะไรที่คล้าย*{'one','two','three'}
กัน
mv -t /tmp one two three && rm -rf * && mv -t . /tmp/one /tmp/two /tmp/three
แต่ฉันต้องการให้แก้ปัญหาไปได้ที่จะ explicitely *
ยกเว้นบางอย่างจาก จะมีสถานการณ์ที่การย้ายหรือคัดลอกไฟล์ไปยังปลายทางอื่นจะไม่มีตัวเลือก
find
กับ--delete
ตัวเลือก (ไม่จำเป็นต้องดำเนินการrm
สำหรับแต่ละไฟล์นั่นคือค่าใช้จ่ายที่ไม่จำเป็น)