İçimden Kesin olarak bildiğim gerektiğini hissediyorum: Ben eğer ls <something>, olacak rm <something>tam olarak aynı dosyaları kaldırmak lsgörüntülenen? Gösterilmeyen rmdosyaları kaldırabilecek durumlar var lsmı? (Bu 18.04 bash'ta)
Düzenleme: cevaplayan herkese teşekkür ederim. Tam cevabın tüm cevapların bir birleşimi olduğunu düşünüyorum, bu yüzden en fazla oyu alan cevabı "cevap" olarak kabul ettim.
Beklenmedik şeyler boyunca öğrendiğim şeyler:
lsArgümanlarını ele alırken düşündüğünüz kadar basit değildir- Ubuntu kurulumunda basit ve karmaşık olmayan bir kurulumda .bashrc takma adları
ls - Dosyalarınızı bir çizgi ile başlayan, komut argümanlarına benzeyebilecekleri gibi adlandırmayın ve bir -r'yi isimlendirmek ister!
find -deleteiyi olurdu rm? “Bu yüzden” diyorsunuz , ama bunun neyi kastettiği tam olarak belirsiz. Ayrıca, findçağrınızın geçerli dizindeki art arda silinen dosyaları sileceğini unutmayın; rmbu dosyalar hemen dizin içindeki dosyaları siler. Ayrıca -name *no-op. Sonuç olarak, tavsiyenize oldukça
findonu çalıştırabilir, tüm dosyaları görebilir ve ardından aynı komutu çalıştırabilirsiniz -delete. Zaten sonuçlarını gördük beri find, (aslında böyle bir cevap şeklinde bu konuda daha fazla ayrıntı duymak istiyorum) silinecektir ne herhangi bir belirsizlik olmalıdır
-delete" - Ama bu nasıl çalışmaktan daha iyi ls <filespec>, ardından rm <filespec>(OP zaten nasıl yapılacağını bilir)?
find ... -printÖnce hangi dosyaların silineceğini onaylamak için çalıştırırsanız , sonra find ... -deleteda iki komut arasında oluşturulan dosyaları sileceksiniz. Her ikisini de kullanırsanız -printve -deleteonay alamazsanız, silinenlerin sadece bir gerçeğe uygun raporu (ve belki de kullanabilirsiniz rm -v).
rma sahip değil--dry-run... bayrak