การตรวจสอบ rm ซ้ำสองครั้งใน zsh


15

เมื่อฉันทำ rm * เป็น zsh ฉันจะได้รับสิ่งนี้:

2014-06-08 10:14:23 $ rm *
zsh: sure you want to delete all the files in /home/assay/assay/log [yn]? y
rm: remove regular file `development.log'? y

zsh แรกถามฉันว่าฉันแน่ใจว่าฉันต้องการลบทั้งหมดหรือไม่จากนั้น rm จะขอไฟล์เฉพาะแต่ละไฟล์

ฉันจะยืนยัน zsh ได้อย่างไร


3
rm -f ./*ใช้ โดยค่าเริ่มต้นrmจะไม่ถามอะไรเลยนอกจากว่าคุณจะไม่ได้รับอนุญาตให้เขียนไฟล์ บางทีคุณอาจจะมีalias rm='rm -i'
Stéphane Chazelas

โอ้ต้องเป็นอย่างนั้น - ฉันกำลังเรียกใช้การลบจากภายใน Vagrant shell และไฟล์เหล่านั้นโฮสต์บนระบบไฟล์แล็ปท็อป ขอบคุณ
ardochhigh

2
เพียงแค่ทราบ zsh ยังคงแจ้งให้ "rm -rf *" นี้สามารถปิดการใช้งานด้วยsetopt rmstarsilent
แมตต์

คำตอบ:


29

ข้อความ“ zsh: แน่ใจว่าคุณต้องการลบไฟล์ทั้งหมด” เป็นคุณสมบัติ zsh ที่ถูกเรียกโดยเฉพาะโดยเรียกใช้คำสั่งที่เรียกว่าrmมีอาร์กิวเมนต์ที่เป็น*หรือsomething/*ก่อนการขยาย glob setopt rm_star_silentคุณสามารถเปิดการทำงานนี้ออกด้วย

ข้อความ“ rm: ลบไฟล์ปกติ” มาจากrmคำสั่งเอง มันจะไม่แสดงขึ้นโดยค่าเริ่มต้นก็จะปรากฏขึ้นเมื่อถูกเรียกด้วยตัวเลือกrm -iหากคุณไม่ต้องการข้อความนี้อย่าผ่านตัวเลือกนั้น แม้จะไม่ได้-i, rmแจ้งเพื่อยืนยัน (มีข้อความแตกต่างกัน) ถ้าคุณพยายามที่จะลบไฟล์แบบอ่านอย่างเดียว; -fคุณสามารถลบการยืนยันนี้โดยผ่านตัวเลือก

เนื่องจากคุณไม่ผ่าน-iในบรรทัดคำสั่งที่rmสันนิษฐานว่าเป็นนามแฝงสำหรับrm -i(มันก็อาจจะเป็นฟังก์ชั่นคำสั่งเสื้อคลุมที่ไม่ได้มาตรฐานหรือนามแฝงที่แตกต่างกัน แต่นามแฝงrm -iคือไกลโดยที่น่าเชื่อถือมากที่สุด) การกำหนดค่าเริ่มต้นบางอย่างรวมalias rm='rm -i'อยู่ในไฟล์การเริ่มต้นเชลล์ นี่อาจเป็นสิ่งที่การแจกจ่ายหรือการตั้งค่าผู้ดูแลระบบของคุณหรือสิ่งที่คุณเลือกจากที่อื่นและเพิ่มลงในไฟล์การกำหนดค่าของคุณจากนั้นลืม ตรวจสอบ~/.zshrcคำจำกัดความของชื่อแทนของrmคุณ หากคุณพบหนึ่งลบออก หากคุณไม่พบหนึ่งให้เพิ่มคำสั่งเพื่อลบนามแฝง:

unalias rm

6

ดูเหมือนว่าคำสั่งที่ถูกต้องเพื่อปิดการใช้งานการตรวจสอบsetopt rm_star_silentซ้ำ setopt no_rm_star_silentต้องการเปิดใช้งานทำการตรวจสอบสองครั้ง

สำหรับข้อมูลโดยละเอียดเพิ่มเติมดูที่หน้า man สำหรับ zshoptions man zshoptionsหรือhttp://linux.die.net/man/1/zshoptions


หรือunsetopt rm_star_silent
evandrix

1

หากคุณกำลังใช้ oh-my-zsh tthe ปลั๊กอินชื่อแทนทั่วไปรวมถึงนามแฝง rm -i

https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/common-aliases/common-aliases.plugin.zsh


1
ในขณะที่ลิงค์นี้อาจตอบคำถามได้ดีกว่าที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง คำตอบสำหรับลิงค์เท่านั้นอาจไม่ถูกต้องหากหน้าเว็บที่เชื่อมโยงมีการเปลี่ยนแปลง - จากการรีวิว
jayhendren

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