Ada banyak pertanyaan tentang cara membatalkan rm
perintah yang sudah selesai . Dalam kasus saya, rm saya mulai bertanya: "Apakah Anda yakin ingin menghapus file ini?"
Dan saya perlu mengkonfirmasi untuk masing-masing dari mereka. Alih-alih secara manual mengkonfirmasi "y / n":
Bisakah saya menetapkan "ya" ke yang lain saat diminta untuk memilih file ke-n? (setara dengan kotak centang "Ya untuk Semua" pada Windows) (Saya tahu
yes | rm
triknya sebelum memulai)Bisakah saya batalkan operasi sambil dimintai file ke-n? (kecuali untuk mematikan mesin :))
Jawaban:
Untuk memenuhi permintaan 1, Anda harus menggunakan program yang lebih canggih daripada
yes
mengirimy
N beberapa kali dan kemudian mengirimkan input keyboard lebih dari itu. Anda tidak dapat melakukannya denganrm
kecuali untuk selalu bertanya (rm -i
) atau untuk tidak pernah bertanya (rm -f
).Anda dapat selalu batalkan
rm
olehkill
), ataukill -9
).Ini tidak akan membatalkan operasi file yang
rm
sudah dilakukan, tetapi mereka akan mencegahnya melakukan operasi file lebih lanjut. Jikarm
proses saat ini meminta input pengguna, itu tidak secara aktif memutuskan tautan file apa pun sehingga mematikannya hanya akan mencegahnya dari melanjutkan.sumber
yes | head -9 | rm...
mendapat 9 (misalnya) ya?{ yes | head -n9; yes n; } | rm -i …
untuk menghapus 9 file pertama, kemudian menjawab, "tidak" untuk file yang tersisa (dan tentu saja{ … }
bagian dapat diperluas untuk mencakup kemungkinan kombinasi angka).rm
daripada membangun perintah yang bengkok dan tidak dapat diandalkan?GNU rm mendukung
-i
, yang saya asumsikan adalah apa yang Anda maksud dan meminta konfirmasi untuk setiap file, tetapi juga-I
, yang sedikit berbeda:Seperti apakah mungkin untuk menghentikan interaksi dengan rm setelah dimulai, memukul Ctrl- Charus melakukannya.
sumber
dengan Ctrl+ cAnda akan dapat membatalkan operasi.
Tetapi jika Anda melihat dalam
.bashrc
file Anda, Anda dapat mengomentari alias yang memaksa konfirmasi, itu menggunakan-i
param seperti yang dikeluarkan dhag.di dalam kamu,
.bashrc
kamu akan menemukan entri seperti ini:jika Anda berkomentar, surat
rm -f
wasiat Anda akan langsung berfungsisumber
Di bawah
bash
, Anda dapat mem-bypass alias dengan menambahkan sebuah\
ke perintah, jadimenjadi
sumber
yes | rm
triknya sebelum memulai