rm
การเรียกซ้ำใช้งานได้ถูกต้องหรือไม่
rm -r x y
จะลบx
และy
ทุกอย่างภายในตัวพวกเขา (ถ้าพวกเขาเป็นไดเรกทอรี) แต่ไม่ใช่พ่อแม่ของพวกเขาหรืออะไรก็ตามที่อยู่ข้างนอก
วิ่ง: sudo rm -R *.QTFS
จะลบไฟล์ * .QTFS ทั้งหมดในไดเรกทอรีปัจจุบันและลูก ๆ ของมันถูกต้องไหม?
ไม่มันจะลบไฟล์ทั้งหมดที่มีชื่อไฟล์*.QTFS
ใด ๆ ที่เรียกซ้ำภายในไดเรกทอรีที่เรียกว่า*.QTFS
และไดเรกทอรีเหล่านั้นด้วยตนเอง หากคุณต้องการว่าพฤติกรรมการลบอื่น ๆ find -delete
การใช้งาน
ไดเรกทอรีปัจจุบันที่แสดงโดยls -lha
ยังมี.
และ..
ลิงก์สำหรับการขาดคำที่ดีกว่าดังนั้นทำไมการเรียกซ้ำไม่ทำตามสิ่งเหล่านี้ขึ้นในแผนผังไดเรกทอรี? มีการ จำกัด สิทธิ์ในแอป rm หรือไม่.
และ..
ไม่ใช่ของจริง?
มันเป็นขีด จำกัด rm
ของเทียม
มันไม่ใช่สิ่งที่ประดิษฐ์ขึ้นมาทั้งหมด - มันเป็นวิธีเดียวที่จะทำงานได้ ถ้าrm
ตามผู้ปกครอง..
การเชื่อมโยงทุกrm -r
จะลบไฟล์บนทุกระบบโดยทำตามทั้งหมดของการเชื่อมโยงทั้งหมดทางกลับไป..
เห็นและรายการในแต่ละไดเรกทอรีเมื่อรายการเนื้อหาและไม่สนใจพวกเขาอย่างชัดเจนด้วยเหตุผลดังกล่าว/
rm
..
.
คุณสามารถลองด้วยตัวเองในความเป็นจริง เรียกใช้rm -r .
และrm
การใช้งานส่วนใหญ่จะปฏิเสธที่จะทำหน้าที่รายงานข้อผิดพลาดอย่างชัดเจน:
$ rm -r .
rm: refusing to remove ‘.’ or ‘..’ directory: skipping ‘.’
(ข้อความนั้นมาจาก GNUrm
; คนอื่นคล้ายกัน) เมื่อพบรายการเหล่านี้โดยปริยายแทนที่จะเป็นข้อโต้แย้งที่ชัดเจนก็เพียงละเว้นพวกเขาและดำเนินการต่อ พฤติกรรมที่ถูกต้องตาม POSIX ใน GNU rm
และ BSD จำนวนมากมันถูกจัดเตรียมโดยอัตโนมัติโดยกลุ่มfts_read
ฟังก์ชันลำดับชั้น - การข้ามผ่าน
หรือ.
และ..
ไม่ใช่ของจริง?
.
และ..
มีทั่วไปรายการไดเรกทอรีจริงถึงแม้ว่ามันจะเป็นระบบแฟ้มที่เฉพาะเจาะจง พวกเขาเกือบจะถูกนำเสนอราวกับว่าพวกเขาเป็นรายการจริงของรหัสผู้ใช้ทั้งหมดโดยไม่คำนึงถึง ซอฟต์แวร์หลายชิ้น (ไม่ใช่แค่rm
) เป็นกรณีพิเศษพฤติกรรมของพวกเขาในการจับหรือป้องกันการหลบหนีหรือการเรียกซ้ำที่ไม่พึงประสงค์