İçimden Kesin olarak bildiğim gerektiğini hissediyorum: Ben eğer ls <something>
, olacak rm <something>
tam olarak aynı dosyaları kaldırmak ls
görüntülenen? Gösterilmeyen rm
dosyaları kaldırabilecek durumlar var ls
mı? (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:
ls
Argü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 -delete
iyi 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; rm
bu dosyalar hemen dizin içindeki dosyaları siler. Ayrıca -name *
no-op. Sonuç olarak, tavsiyenize oldukça
find
onu ç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 ... -delete
da iki komut arasında oluşturulan dosyaları sileceksiniz. Her ikisini de kullanırsanız -print
ve -delete
onay alamazsanız, silinenlerin sadece bir gerçeğe uygun raporu (ve belki de kullanabilirsiniz rm -v
).
rm
a sahip değil--dry-run
... bayrak