Unix'in eski bir sürümünde, rm
komut boş olsaydı dizinleri silerdi. Rm için Research Unix Sekizinci Baskı kılavuz sayfasından : "Bir girdi bir dizinse, yalnızca boşsa kaldırılır." Ben bu davranışı seviyorum, bu yüzden bu takma adı var /etc/profile
: alias rm='rm -d'
GNU coreutils sürümünü kullanıyorum, rm
hangi devam etmeli ve boşsa dizinleri kaldırmayı -d
söyler rm
.
Çok uzak çok iyi. Bu takma ad rm
eski günler gibi kullanmamı sağlıyor . Ancak, bir adım daha ileri gitmek istiyorum. isterim kirm
dizin başka dizinler içeriyor olsa bile, bir dizin silmek için dizinler tek şey olduğu sürece. Dizin yapısının ne kadar derine gittiği önemli değil, orada herhangi bir dosya olmadığı sürece, sadece boş (altta bir kez olsun) dizinler, rm
hepsini kaldırmak istiyorum .
Bu, normal olarak işlev görecek rm
ve kendisine aktarılan dosyaları silecek bir takma ad olarak yazılabilir mi?
mkdir -p a/b1/c2 && mkdir -p a/b2/c2; rmdir -p a/b1/c1;
koşarsam, hala a, a / b2 ve a / b2 / c2 ile kalırım. İstediğim sadece en üst seviyeyi (bu durumda bir) geçmek rm
ve altındaki her şeyi kaldırmaktır.
rmdir -p
?