คำถามติดแท็ก rm

rm เป็นคำสั่งเพื่อลบไฟล์

2
ทำไมฉันไม่สามารถลบ '.' ไดเรกทอรี?
ฉันพยายามลบ '.' ไดเรกทอรี ฉันคิดว่าฉันสามารถลบไดเรกทอรีการทำงานของฉันได้โดยไม่ต้องไปที่ไดเรกทอรีหลัก ประเด็นคำถามของฉันคือการค้นหาข้อมูลเชิงลึกเกี่ยวกับวิธีที่ระบบ linux ทำงานเพื่อลบไฟล์

9
วิธีลบไดเรกทอรีที่ไม่สามารถลบได้นี้
ฉันยกเลิกการติดตั้งไฟล์ tar ที่เสียหายและจัดการเพื่อจบลงด้วยไดเรกทอรีบางอย่างที่ฉันไม่สามารถลบได้ถ้าฉันพยายามลบมันดูเหมือนว่าหาไม่พบ แต่lsแสดงว่ามันมีอยู่ทั้งทุบตีและหลามด้วย ลักษณะการทำงานที่คล้ายกันยกเว้นขวาหลังจากที่ฉันพยายามที่จะลบมันด้วยrm -rf, lsบ่นไม่สามารถหามันแล้วมันจะแสดงรายการมัน (ดูด้านล่างหลังrm -rf) findคำสั่งแสดงไฟล์ที่เป็นปัจจุบัน แต่ยังคงฉันไม่สามารถคิดวิธีที่จะลบมัน นี่คือความพยายามของฉัน: ที่นี่คุณเห็นlsและfindเห็นด้วยเรามีไดเรกทอรี rl]$ ls mikeaâ??cnt rl]$ find -maxdepth 1 -type d -empty -print0 ./mikeaâcnt แต่ฉันไม่สามารถลบได้: rl]$ find -maxdepth 1 -type d -empty -print0 | xargs -0 rm -f -v rm: cannot remove `./mikeaâ\302\201\302\204cnt': Is a directory rl]$ ls mikeaâ??cnt …
40 files  directory  nfs  rm 

8
rm ไม่ได้รายงานเมื่อไฟล์หายไปหรือไม่
ฉันมีสคริปต์ทุบตีที่ฉันต้องการลบไฟล์จากไดเรกทอรีต่าง ๆ บ่อยครั้งที่พวกเขาจะไม่อยู่ที่นั่นเพราะพวกเขาไม่ได้สร้างขึ้นและก็ไม่เป็นไร มีวิธีที่จะทำให้สคริปต์ไม่รายงานข้อผิดพลาดนั้นได้หรือไม่ แต่ถ้า rm มีเอาต์พุตอื่นเพื่อรายงานสิ่งนั้น นอกจากนี้ยังมีคำสั่งที่ดีกว่าให้ใช้เพื่อลบไฟล์ที่มีเสียงดังน้อยลงหรือไม่
38 rm 

6
การลบไฟล์หลายพันล้านไฟล์จากไดเรกทอรีในขณะที่เห็นความคืบหน้าเช่นกัน
ฉันมีไดเรกทอรี 30 TB ที่มีไฟล์เป็นพันล้านไฟล์ซึ่งเป็นไฟล์ JPEG ทั้งหมด ฉันกำลังลบแต่ละไฟล์ของไฟล์ดังนี้: sudo rm -rf bolands-mills-mhcptz คำสั่งนี้จะทำงานและไม่แสดงอะไรเลยว่ามันทำงานหรือไม่ ฉันต้องการดูว่ามันเป็นการลบไฟล์หรือสถานะปัจจุบันของคำสั่งคืออะไร

4
ฉันจะลบไฟล์ทั้งหมดที่มีนามสกุลเฉพาะในโฟลเดอร์ใดโฟลเดอร์หนึ่งได้อย่างไร
ถ้าฉันตั้งค่าไดเรกทอรีปัจจุบัน / ทำงาน (นำทางไปใช้มันcd) ไปยังไดเรกทอรีเฉพาะบางประเภทแล้วพิมพ์: rm *.xvg คำสั่งนี้จะทำอะไร? มันเป็นความจริงว่าคำสั่งดังกล่าวจะเพียงลบไฟล์ที่มีนามสกุล.xvg เฉพาะในไดเรกทอรีการทำงานหรือไม่ ฉันกังวลเกี่ยวกับการลองก่อนที่จะถามเพราะฉันต้องการให้แน่ใจว่าคำสั่งดังกล่าวจะลบ.xvgไฟล์ที่อยู่ในไดเรกทอรีการทำงานเท่านั้น
36 bash  shell  directory  rm 

6
ฉันจะไพพ์ ls เป็น grep ได้อย่างไรและลบไฟล์ที่กรองโดย grep?
ฉันต้องการลบแพคเกจบางอย่างในไฟล์บ้านของฉัน แต่ชื่อไฟล์ยาวเกินไป ( google-chrome-stable_current_i386.deb) ดังนั้นฉันจึงตัดสินใจใช้คำสั่งls|grep chrome|rmเพื่อไพพ์ไฟล์เพื่อ grep เพื่อกรองไฟล์ chrome แล้วลบออก มันใช้งานไม่ได้ดังนั้นฉันอยากจะดูว่าฉันสามารถทำสิ่งนี้ได้อย่างไร
33 grep  pipe  ls  rm 

3
ลบไฟล์และไดเรกทอรีด้วยชื่อ ไม่พบไฟล์หรือโฟลเดอร์ที่คุณค้นหา
ฉันต้องการลบข้อมูลที่รวบรวมทั้งหมด: ไดเรกทอรีที่เรียกว่าbuild, ไดเรกทอรีที่เรียกว่าobj, ไฟล์ * .so ฉันเขียนคำสั่ง find \( -name build -o -name obj -o -name *.so \) -exec rm -rf {} \; ที่ผ่านไดเรกทอรีทั้งหมดซ้ำและลบทั้งหมดที่ฉันต้องการ ทำไมฉันถึงมีผลลัพธ์เช่นนี้ในตอนท้าย? บางทีฉันควรเขียนคำสั่งอื่น find: `./3/obj': No such file or directory find: `./3/build': No such file or directory find: `./1/obj': No such file or directory find: `./1/build': No …
32 find  rm  recursive 

2
เหตุใดการปิดเครื่องของฉันหลังจากที่ `` RM 'ไม่ดีบันทึกไฟล์ของฉัน
สถานการณ์แบบคลาสสิก: ฉันวิ่งได้ไม่ดีrmและรับรู้ได้ทันทีหลังจากนั้นฉันก็ลบไฟล์ผิด (ไม่มีอะไรสำคัญและฉันมีการสำรองข้อมูลล่าสุดอย่างอดทน แต่ก็น่ารำคาญ) รู้ว่ากิจกรรมของดิสก์ต่อไปเป็นศัตรูของฉันถ้าฉันต้องการกู้คืนไฟล์ด้วยextundeleteหรือเครื่องมือดังกล่าวฉันก็ขับเคลื่อนเครื่องลงทางกายภาพทันที (เช่นด้วยปุ่มเปิดปิดไม่ใช่ด้วยhaltหรือคำสั่งใด ๆ ) นี่เป็นแล็ปท็อปที่ไม่มีงานสำคัญที่ทำงานอยู่หรือมีอะไรเปิดอยู่ดังนั้นจึงเป็นการทำงานที่ยอมรับได้ (โดยวิธีการที่ฉันได้เรียนรู้ตั้งแต่นั้นมาสิ่งแรกที่ต้องทำในสถานการณ์ดังกล่าวจะประเมินก่อนหากไฟล์ที่หายไปอาจจะยังคงเปิดโดยกระบวนการhttps://unix.stackexchange.com/a/101247 - หากเป็นเช่นนั้นคุณควรกู้คืนด้วยวิธีนี้แทนที่จะปิดเครื่อง) ถึงกระนั้นเมื่อเครื่องถูกปิดฉันคิดว่าในขณะที่และตัดสินใจว่าไฟล์ไม่คุ้มค่ากับการลงทุนในการบูทระบบสดเพื่อการพิสูจน์หลักฐานที่เหมาะสม ดังนั้นฉันจึงขับเคลื่อนเครื่องสำรอง แล้วฉันก็ค้นพบว่าไฟล์ของฉันยังคงนั่งอยู่บนดิสก์: สิ่งที่rmไม่ได้แพร่กระจายไปยังดิสก์ก่อนที่ฉันจะปิดตัวลง ฉันเต้นเล็กน้อยและขอบคุณพระเจ้าแห่งดูแลระบบสำหรับการให้อภัยที่ไม่คาดคิดของเขา คำถามของฉันคือตอนนี้เพื่อทำความเข้าใจว่ามันเป็นไปได้อย่างไรและอะไรคือความล่าช้าทั่วไปก่อนที่rmจะแพร่กระจายสู่ดิสก์ ฉันรู้ว่าดิสก์ IO ไม่ได้ถูกลบทิ้งทันที แต่มันอยู่ในหน่วยความจำระยะหนึ่ง แต่ฉันคิดว่าดิสก์เจอร์นัลจะทำให้แน่ใจได้อย่างรวดเร็วว่าการดำเนินการที่ค้างอยู่จะไม่สูญหายทั้งหมด https://unix.stackexchange.com/a/78766ดูเหมือนจะบอกกล่าวกับกลไกแยกต่างหากเพื่อล้างหน้าสกปรกและเพื่อล้างการดำเนินการของวารสาร แต่ไม่ได้ให้รายละเอียดที่เพียงพอเกี่ยวกับวิธีที่วารสารจะเกี่ยวข้องกับrmและความล่าช้าที่คาดไว้ก่อนหน้า การดำเนินการจะถูกล้างออก รายละเอียดเพิ่มเติม: ข้อมูลอยู่ในพาร์ติชัน ext4 ภายในโวลุ่ม LUKS และเมื่อบูตเครื่องสำรองข้อมูลฉันเห็นสิ่งต่อไปนี้ในsyslog: Sep 24 10:24:58 gamma kernel: [ 11.457007] EXT4-fs (dm-0): 1 orphan inode deleted Sep 24 10:24:58 gamma kernel: …

5
ลบไฟล์ในไดเรกทอรีโดยไม่มีข้อผิดพลาดหากไฟล์นั้นว่างเปล่า
ในฐานะส่วนหนึ่งของสคริปต์การปรับใช้งานฉันต้องการถ่ายโอนข้อมูลที่แคชไว้บางส่วนจากไดเรกทอรีชั่วคราวของฉัน ฉันใช้คำสั่งเช่น: rm /tmp/our_cache/* อย่างไรก็ตามถ้า/tmp/our_cacheว่างเปล่า (เป็นเรื่องธรรมดาเมื่อทำการเปลี่ยนแปลงจำนวนมากอย่างต่อเนื่องไปยังเซิร์ฟเวอร์ทดสอบของเรา) สิ่งนี้จะพิมพ์ข้อความแสดงข้อผิดพลาดต่อไปนี้: rm: cannot remove `/tmp/our_cache/*': No such file or directory มันไม่ใช่เรื่องใหญ่ แต่มันน่าเกลียดนิดหน่อยและฉันต้องการลดอัตราส่วนสัญญาณรบกวนต่อสัญญาณในเอาต์พุตจากสคริปต์นี้ มีวิธีรัดกุมในยูนิกซ์เพื่อลบเนื้อหาของไดเรกทอรีโดยไม่ได้รับข้อความบ่นว่าไดเรกทอรีว่างเปล่าอยู่แล้ว?
31 files  rm 

2
rm -r ทำงานอย่างไรในการลบแบบเรียกซ้ำ? ในลำดับใด
มีคำสั่งของการดำเนินงานที่จะrm? ฉันดำเนินการrmในไดเรกทอรีขนาดใหญ่และฉันอยากรู้ว่าควรดูว่ามีอะไรที่ถูกลบไปบ้าง ไม่rmทำงานในไฟล์แรกแล้วไดเรกทอรี? หรือมันเป็นไปตามข้อมูลบางอย่างในตารางไอโหนด? ข้อมูลจำเพาะ: rm จาก GNU coreutils 8.22 ระบบ: Arch Linux ทำงานบนระบบไฟล์ beagleboneblack ที่ทำงานอยู่เป็น Seagate HDD (ext4) ภายนอกโดยใช้ USB 2.0 backstory: ฉันกำลังทำการล้างข้อมูลไดเรกทอรีและดำเนินการ cp -r A/ B/ C/ Dest/ ฉันติดตามไปด้วยโดยไม่เจตนา rm -r A/ B/ C/ Dest/ เมื่อฉันตั้งใจจะแสดง rm -r A/ B/ C/ ฉันจับได้แล้วกดCtrl+ Cก่อนที่จะผ่านไปนานเกินไป โดยเฉพาะมันเป็น <3 วินาทีขณะที่ผมกำลังใช้timeคำสั่งร่วมกับ&rm cpฉันเข้าไปในและตรวจสอบโดยDest/คาดหวังว่ามันจะไม่มีอยู่จริง แต่ดูเถิดและเห็นว่ามันเป็นทั้งหมดและดูเหมือนจะไม่ได้รับผลกระทบ …
30 rm  recursive 

4
จะยกเลิกการลิงก์ (ลบ) ฮาร์ดลิงก์พิเศษ“.” ที่สร้างขึ้นสำหรับโฟลเดอร์ได้อย่างไร?
บน Linux เมื่อคุณสร้างโฟลเดอร์มันจะสร้างฮาร์ดลิงก์สองลิงก์ไปยังไอโหนดที่เกี่ยวข้องโดยอัตโนมัติ หนึ่งในนั้นคือโฟลเดอร์ที่คุณขอให้สร้างอีกอันเป็น.โฟลเดอร์พิเศษที่โฟลเดอร์นี้ ตัวอย่าง: $ mkdir folder $ ls -li total 0 124596048 drwxr-xr-x 2 fantattitude staff 68 18 oct 16:52 folder $ ls -lai folder total 0 124596048 drwxr-xr-x 2 fantattitude staff 68 18 oct 16:52 . 124593716 drwxr-xr-x 3 fantattitude staff 102 18 oct 16:52 .. อย่างที่คุณเห็นทั้งด้านในfolderและ.ด้านในfolderมีหมายเลขไอโหนดเดียวกัน …

2
เมื่อคืนฉันทำผิดซึ่งลบ 1800GB ของไฟล์เซิร์ฟเวอร์ของฉันโดยไม่ได้ตั้งใจ
ฉันรันคำสั่งนี้เมื่อวานนี้ฉันคิดว่าในเครื่องทดสอบ แต่มันเป็นไฟล์เซิร์ฟเวอร์เชื่อมต่อผ่าน SSH sudo rm -rf /tmp/* !(lost+found) เทอร์มินัลอีมูเลเตอร์ของฉันคือ Konsole ระบบของฉันคือ Debian 7 คำถาม: คำสั่งนี้ลบไฟล์อื่นที่ไม่ใช่ไฟล์ใน / tmp หรือไม่
27 files  filesystems  rm  tmp 

4
สามารถเรียกไฟล์จาก inode ได้หรือไม่?
ฉันรันคำสั่งต่อไปนี้ตามลำดับที่ระบุ: $ln a b $ls -i a b 523669 a 523669 b $rm -f a $ls -i b 523669 b ฉันได้ข้อสรุปจากการทดสอบนี้ว่าคำสั่งrmจริงลบเฉพาะชื่อไฟล์ ( aในการทดสอบนี้) แทนไฟล์เนื่องจาก inode ยังคงอยู่และสามารถดึงผ่านชื่อไฟล์อื่น ( b) คำถามของฉันคือถ้าไฟล์ยากที่จะเชื่อมโยงกับชื่อไฟล์เดียวเมื่อrmถูกดำเนินการกับไฟล์เป็นไฟล์จริง (เช่น inode) ลบออกอย่างสมบูรณ์? และถ้าไม่สามารถเรียกใช้ไฟล์ inode ได้โดยไม่มีชื่อไฟล์และผ่าน inode เท่านั้น
27 rm  hard-link  inode 


2
ฉันจะลบไฟล์ทั้งหมดที่มีชื่อที่กำหนดในไดเรกทอรีย่อยทั้งหมดได้อย่างไร
ฉันต้องการลบไฟล์ทั้งหมดที่มีชื่อที่กำหนดในไดเรกทอรีย่อยทั้งหมดของโฮมไดเร็กตอรี่ของฉัน ฉันเหนื่อย: rm -r file ในโฮมไดเร็กตอรี่ของฉัน, แต่มันไม่ทำงานเพราะไฟล์นั้นไม่มีอยู่ในไดเรกทอรีนั้น.
25 shell  directory  rm 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.