Dans une ancienne version d'Unix, la rm
commande supprimait les répertoires s'ils étaient vides. À partir de la page de manuel Research Unix Eighth Edition pour rm : "Si une entrée est un répertoire, elle n'est supprimée que si elle est vide." J'aime ce comportement, j'ai donc cet alias dans mon /etc/profile
: alias rm='rm -d'
j'utilise la version GNU coreutils de rm
, dans laquelle on -d
dit rm
d'aller de l'avant et de supprimer les répertoires s'ils sont vides.
Jusqu'ici tout va bien. Cet alias me permet d'utiliser rm
comme autrefois. Cependant, je voudrais aller plus loin. J'aimeraisrm
pour supprimer un répertoire même s'il contient d'autres répertoires, tant que les répertoires sont la seule chose qui s'y trouve. Peu importe la profondeur de la structure des répertoires, tant qu'il n'y a pas de fichiers, juste des répertoires vides (une fois que vous êtes en bas), je voudrais rm
tous les supprimer.
Pourrait-il être écrit comme un alias qui fonctionnerait toujours comme le normal rm
et supprimerait tous les fichiers qui lui sont passés?
mkdir -p a/b1/c2 && mkdir -p a/b2/c2; rmdir -p a/b1/c1;
, je reste avec a, a / b2 et a / b2 / c2. Ce que j'aimerais, c'est passer uniquement le niveau supérieur (a dans ce cas) rm
et supprimer tout ce qui se trouve en dessous.
rmdir -p
?