In una vecchia versione di Unix, il rm
comando avrebbe eliminato le directory se fossero vuote. Dalla pagina man di Research Unix Ottava Edizione per rm : "Se una voce è una directory, viene rimossa solo se vuota." Mi piace questo comportamento, quindi ho questo alias nel mio /etc/profile
: alias rm='rm -d'
sto usando la versione GNU coreutils di rm
, in cui -d
dice rm
di andare avanti e rimuovere le directory se sono vuote.
Fin qui tutto bene. Questo alias mi permette di usare rm
come ai vecchi tempi. Tuttavia, vorrei fare un ulteriore passo avanti. Mi piacerebberm
per eliminare una directory anche se la directory contiene altre directory, purché le directory siano l'unica cosa presente. Non importa quanto sia profonda la struttura della directory, finché non ci sono file lì dentro, solo le directory vuote (una volta arrivate in fondo), vorrei rm
rimuoverle tutte.
Potrebbe essere scritto come un alias che funzionerebbe comunque come normale rm
ed eliminerebbe qualsiasi file passato ad esso?
mkdir -p a/b1/c2 && mkdir -p a/b2/c2; rmdir -p a/b1/c1;
, rimango ancora con a, a / b2 e a / b2 / c2. Quello che mi piacerebbe è passare solo al livello superiore (a in questo caso) rm
e rimuovere tutto al di sotto di esso.
rmdir -p
?