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

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

1
Debian: ไม่สามารถลบ symlink ใน / sys /: ไม่อนุญาตให้ดำเนินการ
ฉันรันคำสั่งบางอย่างโดยไม่เข้าใจในขณะที่พยายามทำให้หน้าจอสว่างและตอนนี้ฉันติดอยู่กับ symlink ที่น่ารังเกียจใน '/ sys / class / backlight / asus_laptop' ที่ฉันพยายามกำจัด ฉันเหนื่อย sudo rm /sys/class/backlight/asus_laptop sudo rm '/sys/class/backlight/asus_laptop' su root rm /sys/class/backlight/asus_laptop sudo rm /sys/class/backlight/asus_laptop ไปที่ไดเรกทอรีและการพิมพ์rm asus_laptopการเปลี่ยนความเป็นเจ้าของและการใช้ Thunar เพื่อลองลบออก ฉันเข้าใจ rm: cannot remove '/sys/class/backlight/asus_laptop': Operation not permitted กันไปสำหรับการยกเลิกการเชื่อมโยง rmdir ไม่ทำงานและ Thunar ล้มเหลว สิทธิ์ในการเป็นlrwxrwxrwx ฉันจะลบออกได้อย่างไร
10 linux  permissions  rm  sysfs 

1
ตัวเลือกทางเลือกเพื่อ rm -f
ฉันต้องการเรียกใช้บรรทัดคำสั่ง: cd ~/www/tmp/; rm -P 2* แต่ฉันได้รับข้อผิดพลาดหากไม่มีไฟล์ที่ขึ้นต้นด้วย 2 คุณคิดว่าฉันต้องการใช้-fอย่างไรก็ตาม: -f Attempt to remove the files without prompting for confirmation, regardless of the file's permissions. If the file does not exist, do not display a diagnostic message or modify the exit status to reflect an error. และฉันทำดูแลเกี่ยวกับแฟ้ม permissions- ถ้ามีบางสิ่งบางอย่างที่แปลกที่เกิดขึ้นผมต้องการยกเลิกคำสั่ง ฉันต้องการระงับข้อผิดพลาด 'ไม่มีอยู่' …
10 command-line  rm 

6
การลบไฟล์ด้วยช่องว่างในชื่อของพวกเขา
ฉันพยายามลบไฟล์ทั้งหมดที่มีช่องว่างในชื่อของพวกเขา ฉันใช้คำสั่งดังต่อไปนี้ แต่มันทำให้ฉันมีข้อผิดพลาด คำสั่ง: ls | egrep '. ' | xargs rm ที่นี่ถ้าฉันใช้ls | egrep '. 'คำสั่งเพียงอย่างเดียวมันให้ชื่อไฟล์ทั้งหมดพร้อมช่องว่างในชื่อไฟล์ แต่เมื่อฉันพยายามที่จะส่งออกไปยัง rm ช่องว่างทั้งหมด (นำหน้าหรือต่อท้าย) จะถูกลบ ดังนั้นคำสั่งของฉันไม่ได้รับการดำเนินการอย่างถูกต้อง ตัวชี้ใด ๆ เกี่ยวกับวิธีลบไฟล์ที่มี atleast หนึ่งช่องว่างในชื่อของพวกเขา?
10 shell  quoting  rm  xargs 

2
ทำไม `cp 'และ` rm` จึงดูแลไดเรกทอรีต่างกัน
ทำไมเครื่องมือที่ชอบcpและrmปฏิบัติต่อไดเรกทอรีแยกจากไฟล์ปกติ? พวกเขาทั้งสองต้องการให้ผู้ใช้ระบุอย่างชัดเจนว่าเธอต้องการพฤติกรรมแบบเรียกซ้ำมิฉะนั้นพวกเขาจะไม่จัดการกับไดเรกทอรีเลย การโต้ตอบครั้งแรกของฉัน (กลับมาอีกครั้ง) กับคอมพิวเตอร์อยู่ในสภาพแวดล้อม Windows / GUI / จุดและคลิก / ลากและวาง พฤติกรรมนี้ทำให้ฉันผิดหวังเมื่อฉันให้คำสั่งด้วย wildcard หากฉันต้องการที่จะลบทุกอย่างในไดเรกทอรี ( *) ยกเว้นsubdirs ไม่ว่างเปล่า ? ฉันสามารถจินตนาการได้ว่านี่เป็นคุณลักษณะด้านความปลอดภัยบางอย่างที่จะป้องกันไม่ให้ผู้ใช้ยิงตัวเองด้วยการเดินเท้า แต่สิ่งนี้ขัดแย้งกับความเข้าใจของฉันเกี่ยวกับหลักการ Unix สองสามข้อ: Unix มักจะไม่ปกป้องผู้ใช้จากตัวเอง มีการสันนิษฐานเสมอว่าผู้ใช้รู้ว่าเธอกำลังทำอะไรอยู่ สำหรับ Unix ทุกอย่างเป็นไฟล์ ไดเรกทอรีไม่ใช่ไฟล์อื่นใช่หรือไม่ ทำไมพวกเขาถึงได้รับการปฏิบัติต่างกัน? คำถามของฉัน: พฤติกรรมนี้เกิดจากข้อ จำกัด ทางเทคนิคหรือเป็นตัวเลือกโดยเจตนาหรือไม่? และในกรณีหลัง มีเรื่องราวทางประวัติศาสตร์เกี่ยวกับเหตุผลที่กระตุ้นตัวเลือกนี้หรือไม่?
10 rm  cp 

4
ลบไฟล์ที่เก่ากว่า 5 วันใน UNIX (วันที่ในชื่อไฟล์ไม่ใช่เวลาประทับ)
ฉันต้องการลบไฟล์บันทึกที่เก่ากว่า 5 วันจากไดเรกทอรี แต่การลบไม่ควรยึดตามเวลาประทับของไฟล์ มันควรจะขึ้นอยู่กับชื่อของไฟล์ สำหรับวันที่ตัวอย่างในปัจจุบันเป็น 2012/07/05 และไดเรกทอรีมี 10 ไฟล์ชื่อเช่นABC_20120430.log, ABC_20120429.log, ABC_20120502.log, ABC_20120320.logฯลฯ ฉันต้องการที่จะสามารถที่จะลบไฟล์โดยแยกวันจากชื่อของไฟล์
10 bash  sed  rm 

4
ไม่มีพื้นที่บนอุปกรณ์เมื่อลบไฟล์ภายใต้ OpenSolaris
ในขณะที่พยายามเมานต์การแชร์ NFS (ส่งออกจากเซิร์ฟเวอร์OpenIndiana ) บนกล่องไคลเอนต์เซิร์ฟเวอร์ OI ขัดข้อง ฉันได้รับหน้าจอสีดำแห่งความตายสิ่งที่ดูเหมือนเป็นบันทึกการถ่ายโอนข้อมูลจากนั้นระบบได้รับการปรับปรุงใหม่ ไม่เคยกลับมาและฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้หลังจากฉันหยุดการบูต: svc.startd[9] Could not log for svc:/network/dns/mulitcast:default: write(30) failed with No space left on device? ฉันไม่มีอะไรในบูตไดรฟ์นอกเหนือจากระบบปฏิบัติการดังนั้น ... ฉันไม่แน่ใจว่าจะมีอะไรมาเติมไดรฟ์? อาจเป็นไฟล์บันทึกบางชนิด? ฉันดูเหมือนจะไม่ลบสิ่งใดโดยไม่คำนึงถึง มันทำให้ฉันไม่มีข้อผิดพลาดพื้นที่เมื่อฉันพยายามและลบอะไร: $ rm filename cannot remove 'filename' : No space left on device ฉันสามารถเข้าสู่ระบบใน "โหมดการบำรุงรักษา" แต่ไม่ใช่พรอมต์ผู้ใช้มาตรฐาน ผลลัพธ์ของdfคือ: rpool/ROOT/openindiana-baseline 4133493 4133493 0 100% …

2
ลบไฟล์ทั้งหมดซ้ำโดยไม่ลบไดเรกทอรี
ฉันต้องการที่จะ "ล้าง" ไฟล์ทั้งหมดของไดเรกทอรีรวมถึงไฟล์ทั้งหมดในไดเรกทอรีย่อย แต่ฉันต้องการที่จะออกจากไดเรกทอรีย่อยในสถานที่ ฉันเข้าใจrm -rว่ามันจะลบไดเรกทอรีย่อยด้วยเช่นกัน ฉันไม่ต้องการลบไฟล์ที่ซ่อนอยู่ (จุด) สิ่งนี้สามารถทำได้?
10 command-line  find  rm 

1
ทำไม rmdir และยกเลิกการเชื่อมโยงการเรียกระบบสองครั้งแยกกัน?
นี่คือสิ่งที่ทำให้ฉันสงสัยอยู่พักหนึ่ง: [15:40:50][/tmp]$ mkdir a [15:40:52][/tmp]$ strace rmdir a execve("/usr/bin/rmdir", ["rmdir", "a"], [/* 78 vars */]) = 0 brk(0) = 0x11bb000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff3772c3000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=245801, ...}) = 0 mmap(NULL, 245801, …

2
ลบไฟล์ที่ไม่มีสตริงในชื่อ
ฉันต้องการลบไฟล์ที่ไม่มีสตริง '999' (ไม่มี '') ในชื่อของพวกเขา ฉันเหนื่อย: grep -vlr 999 . | xargs -0 rm -f -- find . -print0 | grep --null-data -v 999 | xargs -0 rm -- แต่ไม่มีใครทำงานเลย ฉันใช้ macOS Sierra โดยใช้ bash: 3.2.57
9 bash  osx  filenames  rm 

2
ความแตกต่างระหว่าง rmdir และ rm -r
ฉันมักจะลบไดเรกทอรีโดยใช้rm : rm -r myDir อย่างไรก็ตามฉันตระหนักถึงคำสั่งอื่นrmdirซึ่งดูเหมือนว่าจะทำงานเช่นกัน: rmdir myDir อะไรคือความแตกต่างระหว่างสองคำสั่งนี้และเมื่อใดควรใช้แต่ละคำสั่ง
9 directory  rm  command 

2
จะลบไดเรกทอรีที่มี subvolumes หลาย btrfs ได้อย่างไร
ระบบไฟล์รูทของฉันอยู่ในพาร์ติชัน btrfs /chrootไดเรกทอรีของฉันมีไดรฟ์ย่อย btrfs อยู่จำนวนหนึ่งซึ่งทำให้ฉันไม่สามารถลบออกrm -rf /chrootได้ ในความพยายามที่จะลบไดรฟ์ย่อยทั้งหมดฉันพยายามแสดงรายการเฉพาะไดรฟ์ย่อยด้านล่าง/chrootโดยใช้-o, ซึ่งหน้าคนบอกว่า "พิมพ์เฉพาะไดรฟ์ย่อยด้านล่างเส้นทางที่ระบุ" # btrfs subvolume list -o /chroot ID 593 gen 6616 top level 5 path chroot/base-devel/root ID 594 gen 6618 top level 5 path chroot/multilib-devel/root ID 595 gen 6620 top level 5 path chroot/base/root ID 597 gen 6624 top level 5 …
9 rm  btrfs 

2
ลบ / tmp โดยไม่ตั้งใจ
ฉันวิ่งไปโดยบังเอิญsudo rm -r /tmpนั่นเป็นปัญหาหรือไม่? ฉันสร้างมันขึ้นมาโดยใช้มันsudo mkdir /tmpช่วยแก้ปัญหาได้ไหม? หลังจากที่ฉันสร้างไดเรกทอรีขึ้นมาใหม่ในส่วนของplacesในแถบด้านข้างใน nautilus ใน Ubuntu 14.04 ฉันเห็น / tmp ซึ่งไม่เคยมีมาก่อน .. นั่นเป็นปัญหาหรือเปล่า สิ่งสุดท้ายที่ฉันต้องsudo chown $USER:$USER /tmpทำเพื่อให้สามารถเข้าถึงได้เหมือนเดิม .. จะมีผลข้างเคียงหลังจากนี้หรือไม่? โดยวิธีการที่ฉันได้รับข้อผิดพลาดที่เกี่ยวข้องกับดูเหมือนเมื่อฉันพยายามใช้การเติมข้อความอัตโนมัติทุบตี bash: ไม่สามารถสร้างไฟล์ temp สำหรับ here-document: การอนุญาตถูกปฏิเสธ

1
rm สามารถลบไดเรกทอรีที่ว่างเปล่าซ้ำ ๆ ได้หรือไม่
ใน Unix เวอร์ชันเก่าrmคำสั่งจะลบไดเรกทอรีถ้าว่างเปล่า จากหน้าคู่มือการวิจัย Unix Eighth Edition สำหรับ rm : "ถ้ารายการเป็นไดเรกทอรีรายการนั้นจะถูกลบออกหากว่างเปล่า" ฉันชอบพฤติกรรมนี้ดังนั้นฉันจึงมีนามแฝงนี้ในของฉัน/etc/profile: alias rm='rm -d'ฉันใช้รุ่น GNU coreutils rmซึ่ง-dบอกrmให้ไปข้างหน้าและลบไดเรกทอรีหากไม่มี จนถึงตอนนี้ดีมาก นามแฝงนี้อนุญาตให้ฉันใช้rmเหมือนวันเก่า ๆ อย่างไรก็ตามฉันต้องการที่จะก้าวไปอีกขั้น ฉันต้องการrmเพื่อลบไดเรกทอรีแม้ว่าไดเรกทอรีนั้นจะมีไดเรกทอรีอื่นอยู่ตราบใดที่ไดเรกทอรีมีเพียงสิ่งเดียว ไม่สำคัญว่าโครงสร้างไดเรกทอรีจะลึกแค่ไหนหากไม่มีไฟล์อยู่ในนั้นเพียงแค่ว่างเปล่า (เมื่อคุณไปถึงด้านล่าง) ไดเรกทอรีฉันต้องการrmลบออกทั้งหมด สิ่งนี้สามารถเขียนเป็นนามแฝงซึ่งจะยังคงทำงานเหมือนปกติrmและลบไฟล์ใด ๆ ที่ส่งไปหรือไม่
9 directory  rm  alias 

5
การทำให้ไดเรกทอรีได้รับการป้องกันจาก 'rm -rf'
ฉันเพียงแค่สูญเสียข้อมูลบางอย่างในโฟลเดอร์ซึ่งเป็นโฟลเดอร์ภายใน B rm -rf Bหลังจากที่ทำ ก่อนที่ฉันจะรู้ว่าสิ่งที่ฉันทำมันจบลงแล้ว ตอนนี้ฉันได้เรียนรู้บทเรียนแล้วฉันต้องการทำให้โฟลเดอร์ของฉันงี่เง่าพิสูจน์เพื่อหลีกเลี่ยงในครั้งต่อไปเมื่อฉันทำสิ่งที่คล้ายกันและต้องการที่จะฆ่าตัวตาย rmวิธีการหนึ่งที่ฉันสามารถคิดคือการเขียนฟังก์ชั่นการทุบตีและนามแฝงมัน .dontdeleteฟังก์ชั่นนี้จะดูในแต่ละโฟลเดอร์ย่อยสำหรับไฟล์ที่ซ่อนอยู่เช่น เมื่อพบว่ามันจะถามว่าฉันต้องการที่จะดำเนินการต่อไป ฉันไม่สามารถป้องกันการเขียนได้เนื่องจากมีกระบวนการที่เขียนไปยังโฟลเดอร์นี้อย่างต่อเนื่อง มีวิธีที่ดีกว่าที่จะทำหรือไม่

8
ลบไฟล์ที่เก่าที่สุด
ฉันกำลังพยายามลบไฟล์เก่าออกจากไดเรกทอรีและเหลือเพียง 3 ไฟล์ใหม่ล่าสุด cd /home/user1/test while [ `ls -lAR | grep ^- | wc -l` < 3 ] ; do rm `ls -t1 /home/user/test | tail -1` echo " - - - " done มีบางอย่างผิดปกติกับข้อความสั่งแบบมีเงื่อนไข
9 shell  files  rm 

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