Unix'in eski bir sürümünde, rmkomut 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, rmhangi devam etmeli ve boşsa dizinleri kaldırmayı -dsöyler rm.
Çok uzak çok iyi. Bu takma ad rmeski günler gibi kullanmamı sağlıyor . Ancak, bir adım daha ileri gitmek istiyorum. isterim kirmdizin 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, rmhepsini kaldırmak istiyorum .
Bu, normal olarak işlev görecek rmve 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 rmve altındaki her şeyi kaldırmaktır.
rmdir -p?