Jangan pernah menguraikan output ls
Saran saya adalah untuk menghindari mengurai output ls [ 1 ] , bahkan lebih jika dalam hubungannya dengan del
perintah. Ini karena berbagai alasan terutama terkait dengan karakter tak terduga dan tidak biasa yang diizinkan dalam nama file.
Bahkan ketika Anda harus berharap bahwa nama file milik paket Linux akan "berperilaku baik" , masalah ini tetap dapat muncul jika file lain ada di direktori yang sama tetapi Anda tidak tahu atau perhatikan.
Lebih baik digunakan find
, ekspansi tab (mulai menulis nama dan tekan Tab), ekspansi nama file [ 2 ] sebagai *MyKey*
...
Solusi cepat
Karena Anda ingin memilih semua paket (yang diakhiri dengan .deb
) dengan "google" di dalamnya Anda dapat membangun permintaan Anda dengan wildcard *
*google*.deb
dan melakukan yang sederhana
rm -i *google*.deb
yang akan memilih setiap nama file dengan "google" di tengah yang akan selesai untuk .deb
hadir di direktori saat ini. Opsi -i
(interaktif) akan meminta konfirmasi, kebiasaan yang baik ketika Anda menghapus file dengan ekspansi parameter.
Sebuah solusi yang dekat dengan filosofi usaha Anda.
Jika tujuan Anda adalah untuk membangun potongan perintah per bagian Anda, jadi Anda telah selesai ls
, setelah ls | grep google
, dan hanya setelah Anda memeriksa output Anda, Anda dapat menjalankannya dalam subkulit $(...)
dengan
rm -i $(ls | grep google)
Cara yang lebih cepat dan lebih berbahaya [ 3 ] , adalah menggunakan!!
ls | grep google
rm -i $(!!)
yang akan menjalankan perintah terakhir yang selesai dalam riwayat Anda . Anda dapat melindungi diri dari kenyataan bahwa Anda tidak memiliki kontrol visual garis yang Anda akan mengeksekusi jika Anda telah mengaktifkan terlebih dahulu opsi shell histverify
dengan shopt -s histverify
.
rm -i *chrome*.deb