สิ่งที่ฉันรู้สึกว่าฉันควรจะรู้แน่นอน: ถ้าฉันls <something>
จะrm <something>
ลบไฟล์เดียวกับที่ls
แสดงหรือไม่ มีสถานการณ์ใดบ้างที่rm
สามารถลบไฟล์ที่ls
ไม่แสดง (นี่คือใน 18.04 bash)
แก้ไข: ขอบคุณทุกคนที่ตอบ ฉันคิดว่าคำตอบแบบเต็มคือการรวมกันของคำตอบทั้งหมดดังนั้นฉันจึงยอมรับคำตอบที่ได้รับการโหวตมากที่สุดว่า "คำตอบ"
สิ่งที่ไม่คาดคิดที่ฉันได้เรียนรู้ระหว่างทาง:
ls
ไม่ตรงไปตรงมาอย่างที่คุณคิดในการจัดการกับข้อโต้แย้ง- ในการติดตั้งอูบุนตูง่ายๆโดยใช้นามแฝง. bashrc
ls
- อย่าตั้งชื่อไฟล์ของคุณที่ขึ้นต้นด้วยเส้นประเนื่องจากมันสามารถดูเหมือนอาร์กิวเมนต์คำสั่งและการตั้งชื่อหนึ่ง -r กำลังขอมัน!
find -delete
จะดีกว่าrm
? คุณพูดว่า"นั่นคือเหตุผล"แต่มันก็ไม่ชัดเจนสำหรับฉันในสิ่งที่อ้างอิงถึง นอกจากนี้โปรดทราบว่าfind
การร้องขอของคุณจะลบไฟล์ทั้งหมดซ้ำในไดเรกทอรีปัจจุบันซึ่งrm
จะลบไฟล์ในไดเรกทอรีทันที ยัง-name *
เป็นแบบไม่มี op ทั้งหมดในทุกฉันค่อนข้างงงงวยโดยคำแนะนำของคุณ ...
find
-delete
เนื่องจากคุณเห็นผลลัพธ์จากfind
แล้วไม่ควรมีความกำกวมในสิ่งที่จะถูกลบออก (จริง ๆ แล้วฉันอยากจะได้ยินรายละเอียดเพิ่มเติมเกี่ยวกับเรื่องนี้ในรูปแบบของคำตอบ)
-delete
" - แต่จะดีกว่าการใช้งานls <filespec>
อย่างไรตามด้วยrm <filespec>
(ซึ่ง OP รู้วิธีการทำอยู่แล้ว)?
find ... -print
ก่อนเพื่อยืนยันว่าจะลบไฟล์ใดจากนั้นfind ... -delete
คุณจะยังคงลบไฟล์ที่สร้างระหว่างคำสั่งสองคำ หากคุณใช้ทั้งสองอย่าง-print
และ-delete
คุณจะไม่ได้รับการยืนยันเพียงรายงานตามความเป็นจริงของสิ่งที่ถูกลบไป (และคุณอาจใช้เช่นกันrm -v
)
rm
ไม่มี--dry-run
ธง ...