Verifikasi rm ganda di zsh


15

Ketika saya melakukan rm * di zsh, saya mendapatkan sesuatu seperti ini:

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

Pertama zsh bertanya apakah saya yakin saya ingin menghapus semua, dan kemudian rm meminta setiap file tertentu.

Bagaimana saya bisa mendapatkan verifikasi zsh?


3
Gunakan rm -f ./*. Secara default, rmtidak meminta apa pun kecuali Anda tidak memiliki izin tertulis untuk file tersebut. Mungkin Anda punyaalias rm='rm -i'
Stéphane Chazelas

Oh itu pasti - Saya menjalankan penghapusan dari dalam cangkang Vagrant, dan file-file di-host pada sistem file laptop. Terima kasih
ardochhigh

2
Hanya sebuah catatan, zsh masih meminta pada "rm -rf *", ini dapat dinonaktifkan dengansetopt rmstarsilent
Matt

Jawaban:


29

Pesan "zsh: yakin Anda ingin menghapus semua file" adalah fitur zsh, secara khusus dipicu dengan menjalankan perintah yang disebut rmdengan argumen yang ada *atau something/*sebelum ekspansi glob. Anda dapat mematikan ini dengan setopt rm_star_silent.

Pesan "rm: remove file biasa" berasal dari rmperintah itu sendiri. Ini tidak akan muncul secara default, itu hanya muncul ketika rmdipanggil dengan opsi -i. Jika Anda tidak ingin pesan ini, jangan lewat opsi itu. Bahkan tanpa -i, rmmeminta konfirmasi (dengan pesan yang berbeda) jika Anda mencoba untuk menghapus file read-only; Anda dapat menghapus konfirmasi ini dengan melewati opsi -f.

Karena Anda tidak meneruskan -ipada baris perintah, rmmungkin merupakan alias untuk rm -i(bisa juga berupa fungsi, perintah pembungkus non-standar, atau alias berbeda, tetapi alias rm -isejauh ini merupakan yang paling masuk akal). Beberapa konfigurasi default termasuk alias rm='rm -i'dalam file inisialisasi shell mereka; ini bisa berupa sesuatu yang distribusi atau administrator sistem Anda atur, atau sesuatu yang Anda ambil dari suatu tempat dan ditambahkan ke file konfigurasi Anda kemudian lupa. Periksa ~/.zshrcdefinisi alias untuk Anda rm. Jika Anda menemukannya, hapus. Jika Anda tidak menemukannya, tambahkan perintah untuk menghapus alias:

unalias rm

6

Perintah yang benar untuk menonaktifkan verifikasi ganda tampaknya setopt rm_star_silent. Untuk mengaktifkan verifikasi ganda lakukan setopt no_rm_star_silent.

Untuk informasi lebih rinci, lihat halaman manual untuk zshoptions man zshoptionsatau http://linux.die.net/man/1/zshoptions


atauunsetopt rm_star_silent
evandrix

1

Jika Anda menggunakan oh-my-zsh, plugin common-alias menyertakan rm -i alias.

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


1
Meskipun tautan ini dapat menjawab pertanyaan, lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini dan memberikan tautan untuk referensi. Jawaban hanya tautan dapat menjadi tidak valid jika halaman tertaut berubah. - Dari Ulasan
jayhendren

@jayhendren - ini bukan tautan ke dokumentasi, ini tautan ke sesuatu yang harus dipasang untuk memperbaiki masalah ...
Wouter Verhelst
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.