Asla ls'nin çıkışını ayrıştırma
Önerim, ls [ 1 ] ' in çıkışını ayrıştırmamaktan kaçınmaktır .del
komut . Bu, pek çok nedenden ötürü, genellikle beklenmedik ve dosya adına izin verilen olağan olmayan karakterlerle ilgilidir.
Linux paketlerine ait dosya adlarının "iyi davranacağını" beklemeniz durumunda bile , bu dosya aynı dizinde başka dosyalar varsa, ancak bilmediyseniz veya farketmediyseniz görünebilir.
find
Sekme genişletmesi (adı yazmaya ve basmaya başla Tab), dosya adı genişletme [ 2 ] olarak kullanmak daha iyidir *MyKey*
...
Hızlı bir çözüm İçinde "google" bulunan
tüm paketleri (tamamlanmış .deb
) seçmek istediğinizden , joker karakter ile isteğinizi oluşturabilir ve basit bir işlem yapabilirsiniz.*
*google*.deb
rm -i *google*.deb
her seçecektir dosya adı ile "google" için bitecek ortada .deb
geçerli dizinde mevcut. Seçenek -i
(etkileşimli) onay ister, parametre genişletmeli dosyaları sildiğinizde iyi bir alışkanlık olur.
Denemenizin felsefesine yakın bir çözüm
Amacınız komut satırı parçanızı parçadan sonra oluşturmaksa, bunu yaptınız ls
, sonra ls | grep google
ve yalnızca çıktınızı kontrol ettikten sonra bunu bir alt kabukta uygulayabilirsiniz $(...)
.
rm -i $(ls | grep google)
Daha hızlı ve daha tehlikeli bir yol [ 3 ] kullanmaktır!!
ls | grep google
rm -i $(!!)
Bu geçmişinde biten son komutu yürütecek . Sen sen önceden kabuk seçenekleri etkinleştirdiyseniz yürütmek edeceklerini hattının hiçbir görsel kontrole sahip olmasından korunabilirsiniz histverify
ile shopt -s histverify
.
rm -i *chrome*.deb