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

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

1
ตั้งแต่เมื่อ POSIX และ GNU rm ไม่ลบ /?
เป็นเวลาหลายปีแล้วที่rmยูทิลิตี้GNU จะไม่ลบ/จนกว่าจะมีการเรียกพร้อมกับ--no-preserve-rootตัวเลือก อย่างไรก็ตามคำสั่งrm -rf /ดังกล่าวถูกขังอยู่ในจิตใต้สำนึกส่วนรวมว่าเป็นอันตรายมาเป็นเวลานานและผู้คนก็มักจะอ้างว่ามันเป็นคำสั่ง "น่ากลัว" ฉันสงสัยว่าเมื่อกฎนี้ที่rmไม่สามารถลบ/ปรากฏขึ้นครั้งแรก ฉันตรวจสอบรายละเอียด POSIX แล้วและฉันสามารถเห็นได้ว่าในขณะที่POSIX: 2008มีคุณสมบัติความปลอดภัยนี้POSIX: 2001จะไม่ทำงาน เนื่องจากข้อมูลจำเพาะ POSIX เวอร์ชันออนไลน์ได้รับการอัปเดตเป็นครั้งคราวด้วยการเปิดตัวย่อยใหม่แต่ละครั้งฉันจึงตรวจสอบเครื่อง wayback และพบหน้าเว็บที่เกี่ยวข้องของ POSIX: 2008 จากปี 2010และสามารถยืนยันได้ว่ากฎที่rmไม่สามารถลบได้/ได้รับการจดทะเบียนแล้ว ดังนั้นคำถามของฉันคือ: เมื่อใดที่กฎที่rmไม่สามารถลบการ/เพิ่มลงในข้อมูลจำเพาะ POSIX ได้ มันเป็นรุ่น 2008 ของ Single UNIX Specification เวอร์ชั่น 4 หรือเพิ่มเข้ามาในการแก้ไขไหม? ข้อ จำกัด นี้ถูกเพิ่มลงใน GNU เมื่อrmใด ฉันค่อนข้างแน่ใจว่าก่อนที่มันจะถูกเพิ่มใน POSIX แต่เมื่อมันเกิดขึ้น?
23 rm  posix  history  gnu 

5
คุณสามารถไปกับ rm -rf / as root ได้ไกลแค่ไหน
หากคุณเป็นคนรูทและคุณเป็นผู้ออก rm -rf / ถ้าเช่นนั้นคำสั่งจะไปได้ไกลแค่ไหน? คุณสามารถกู้คืนข้อมูลจากการกระทำประเภทนี้ได้หรือไม่? แม้หลังจากที่ไบนารีหายไปกระบวนการที่ทำงานอยู่จะยังคงทำงานอยู่หรือไม่? สิ่งที่ต้องใช้เพื่อให้การบูตเครื่องทางกายภาพเดียวกันอีกครั้ง คุณต้องการเรียกคืนไฟล์ใดเพื่อให้เกิดสิ่งนี้ ฉันสามารถลองบน VM และดู แต่ฉันต้องการทราบเหตุผลเบื้องหลังสิ่งที่คาดหวังถ้าฉันทำเช่นนี้
23 root  rm 


5
ฉันจะลบไฟล์ชื่อ“>” ได้อย่างไร?
ผมทำงานสคริปต์หลามที่ผิดปกติและนำมาใช้ในการสร้างไฟล์ชื่อsudo> ฉันจะกำจัดไฟล์นี้ได้อย่างไร แน่นอนว่าเมื่อฉันพยายามที่sudo rm >ฉันได้รับข้อผิดพลาดเพราะคิดว่าฉันพยายามที่จะเปลี่ยนเส้นทางการส่งออกของbash: syntax error near unexpected token 'newline'rm -rw-r--r--มันเป็นสิทธิ์
22 bash  quoting  filenames  rm 

3
Rm ไม่สามารถลบไฟล์ได้
chmod 777 -R /mnt rm -rf /mnt/* rm: cannot remove 'omitted': Read-only file system rm: cannot remove 'omitted': Read-only file system โปรดแสดงให้ฉันดูว่าฉันจะทำสิ่งนี้ได้อย่างไร
22 rm  readonly 

2
ตัวเลือกคำสั่ง macOS rm '-W' - ยกเลิกการลบ
ฉันกำลังดูหน้า man สำหรับrmคำสั่งบน MacBook ของฉันและฉันสังเกตเห็นสิ่งต่อไปนี้: - ความพยายามที่จะยกเลิกการลบไฟล์ที่มีชื่อ ขณะนี้ตัวเลือกนี้สามารถใช้เพื่อกู้คืนไฟล์ที่มี Whiteouts เท่านั้น สิ่งนี้หมายความว่า? "Whiteout" คืออะไร?
22 files  osx  rm  deleted-files 

5
ไม่สามารถลบไฟล์:“ โครงสร้างต้องทำความสะอาด”
ฉันมีฮาร์ดไดรฟ์ภายนอกซึ่งเข้ารหัสผ่าน LUKS มันมี ext4 fs ฉันเพิ่งได้รับข้อผิดพลาดจาก rsync สำหรับไฟล์ที่อยู่ในไดรฟ์นี้: rsync: readlink_stat("/home/some/dir/items.json") failed: Structure needs cleaning (117) หากฉันพยายามลบไฟล์ฉันได้รับข้อผิดพลาดเดียวกัน: rm /home/some/dir/items.json rm: cannot remove ‘//home/some/dir/items.json’: Structure needs cleaning ไม่มีใครรู้ว่าฉันสามารถทำอะไรเพื่อลบไฟล์และแก้ไขปัญหาที่เกี่ยวข้องกับไดรฟ์ / fs (ถ้ามี)?
22 ubuntu  files  filesystems  rm  ext4 

2
วิธีกำจัด "ไม่พบที่ตรงกัน" เมื่อเรียกใช้ "rm *"
ใช้zshฉันได้รับข้อความ "ไม่พบการจับคู่" เมื่อเลือกรูปแบบที่ไม่เหมาะสมrmและแม้เมื่อเปลี่ยนเส้นทางผลลัพธ์ # rm * > /dev/zero 2>&1 zsh: no matches found: * ฉันจะกำจัดข้อความนี้ได้อย่างไร
22 zsh  wildcards  rm 

3
ความสำคัญของตัวเลือกคำสั่ง?
ฉันรู้ว่าrm -f file1จะลบอย่างแรงfile1โดยไม่แจ้งให้ฉัน ฉันก็รู้ว่าrm -i file1จะแจ้งให้ฉันก่อนที่จะลบfile1 ตอนนี้ถ้าคุณดำเนินการrm -if file1สิ่งนี้จะเป็นการลบอย่างแรงfile1โดยไม่แจ้งให้ฉันทราบ แต่ถ้าคุณดำเนินการก็จะแจ้งให้ผมก่อนที่จะลบrm -fi file1file1 เป็นจริงหรือไม่ที่เมื่อรวมตัวเลือกคำสั่งตัวสุดท้ายจะมีความสำคัญกว่ากัน? เช่นrm -ifนั้น-fจะมีความสำคัญกว่า แต่ rm -fiก็-iจะมีความสำคัญกว่า lsคำสั่งเช่นมันไม่สำคัญว่าถ้าคุณบอกว่าหรือls -latRls -Rtal ดังนั้นฉันคิดว่ามันสำคัญเฉพาะเมื่อคุณมีตัวเลือกคำสั่งที่ขัดแย้งเช่นrm -ifนั้นถูกต้องหรือไม่

2
Cron job ลบไฟล์ที่เก่ากว่า 3 วัน
ฉันต้องลบไฟล์ที่เก่ากว่า 3 วันด้วยงาน cron ใน 3 ไดเรกทอรีที่แตกต่างกัน (ทั้ง 3 ไดเรกทอรีนี้เป็นรายการย่อยของไดเรกทอรีหลัก/a/b/c/1& /a/b/c/2& /a/b/c/3) สามารถทำได้ด้วยหนึ่งบรรทัดใน crontab หรือไม่

3
เหตุใด rm จึงช้าในไดรฟ์จัดเก็บข้อมูลภายนอก (เชื่อมต่อ USB, ประเภทฟิวส์) ด้วยไฟล์ 50Gb?
ฉันพยายามใช้rsnapshotเพื่อทำการสำรองข้อมูล แต่ฉันพบว่ามันใช้ไม่ได้ ในขณะที่สามารถกระจายไดเรกตอรี (50gb) และทำซ้ำ (ฮาร์ดลิงก์ทุกไฟล์) ในเวลาไม่กี่นาทีและฉันสามารถ cp ไดเรกตอรีทั้งหมดในเวลาประมาณครึ่งชั่วโมง แม้จะใช้โดยตรงrm -rfvฉันพบว่าอาจใช้เวลานานถึงครึ่งวินาทีในการแปลงไฟล์เดียวในขณะที่คำสั่งcpและlinkคำสั่งเสร็จสมบูรณ์ทันที ทำไม RM ถึงช้าจัง? มีวิธีใดที่เร็วกว่าในการลบการทำลิงก์ซ้ำซ้ำหรือไม่ สำหรับฉันแล้วการคัดลอกไฟล์ควรใช้เวลาน้อยกว่าการลบออก ระบบไฟล์ที่ฉันกำลังทำงานอยู่นั้นเป็นไดรฟ์จัดเก็บข้อมูลภายนอกเชื่อมต่อผ่าน usb และพิมพ์ฟิวส์ (ซึ่งฉันคิดว่ามันคือ ntfs) คอมพิวเตอร์ของฉันใช้งาน Ubuntu Linux ผลผลิตจากด้านบน: Cpu(s): 3.0%us, 1.5%sy, 0.0%ni, 54.8%id, 40.6%wa, 0.0%hi, 0.1%si, 0.0%st Mem: 8063700k total, 3602416k used, 4461284k free, 557604k buffers

2
เหตุใดฉันจึงไม่สามารถลบไฟล์นี้เป็น root ได้
ฉันมีการสอบไดเรกทอรีที่มี 2 ไฟล์อยู่ในนั้น ฉันต้องการลบไฟล์ แต่สิทธิ์ถูกปฏิเสธ rm -rfคำสั่งแม้ไม่สามารถลบไฟล์เหล่านี้ ฉันเข้าสู่ระบบในฐานะผู้ใช้รูท
20 linux  files  permissions  rm 

3
เป็นไปได้หรือไม่ที่จะตัดสินความคืบหน้าของคำสั่ง rm?
การใช้rm -rf LargeDirectoryเพื่อลบไดเรกทอรีขนาดใหญ่อาจใช้เวลานานกว่าจะเสร็จสมบูรณ์ทั้งนี้ขึ้นอยู่กับขนาดของไดเรกทอรี เป็นไปได้หรือไม่ที่จะได้รับการอัพเดตสถานะหรือติดตามความคืบหน้าของการลบนี้อย่างใดอย่างหนึ่งเพื่อให้การประมาณการคร่าวๆว่าในกระบวนการคำสั่งคืออะไร?
18 rm 

3
ย้ายไฟล์และลบไดเรกทอรีด้วย rsync หรือไม่
เมื่อเร็ว ๆ นี้ฉันต้องการลบไฟล์จำนวนมาก (มากกว่า 1 ล้านไฟล์) และฉันได้อ่าน: rsync -av --delete `mktemp -d`/ ~/source && rmdir ~/source rm -rfเป็นหนึ่งในวิธีที่ดีที่สุดมากที่สุดที่จะทำเช่นนั้นและฉันสามารถรับรองว่ามันเร็วกว่า ฉันไม่ใช่ผู้เชี่ยวชาญในเรื่องนี้ แต่จากความเข้าใจของฉันแล้วเหตุผลที่ประสิทธิภาพของ rsync มีบางอย่างที่ต้องทำตามวิธีที่รายการไฟล์ (LIFO แทนที่จะเป็น FIFO ที่ฉันคิดว่า) ตอนนี้ปัญหาคือฉันต้องย้ายไฟล์จำนวนมากด้วยวิธีที่มีประสิทธิภาพ หลังจากค้นหาแล้วฉันก็พบสิ่งนี้: rsync -av --ignore-existing --remove-source-files ~/source ~/destination ขณะนี้ลบทั้งหมดย้ายไฟล์ใน~/sourceไดเรกทอรียังคงมี เนื่องจากฉันมีโครงสร้างไดเรกทอรีคล้ายกับ "round-robin" จำนวนfiles/directoriesใกล้เคียงกับ 1 ดังนั้นฉันจึงถูกบังคับให้เรียกใช้คำสั่งแรกอีกครั้งเพื่อกำจัดไดเรกทอรีทั้งหมด: rsync -av --ignore-existing --remove-source-files ~/source ~/destination && \ rsync -av …

7
การลบไฟล์ทั้งหมดในโฟลเดอร์ยกเว้นไฟล์ X, Y และ Z
ฉันมีไฟล์และโฟลเดอร์จำนวนมากในโฟลเดอร์เฉพาะและฉันต้องการลบทั้งหมด; อย่างไรก็ตามฉันต้องการเก็บไฟล์ X, Y และ Z มีวิธีที่ฉันสามารถทำสิ่งที่ชอบ: rm * | but NOT grep | X or Y or Z
17 command-line  rm 

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