Je place ici quelques commandes dont je me sers plutôt rarement
Si vous souhaitez en discuter sur le fofo : c'est par là.
Créer une copie conforme en préservant les droits et les liens.
Se placer dans le dossier parent du dossier à cloner.
rsync -arv --stats --progress original/ copie
Les options importantes sont -a (archive) et -r (récursion).
Le slash après original entraîne la copie de son arborescence dans copie et non copie/original.
Celle-ci m'a donné du fil à retordre.
J'avais malencontreusement installé le wiki en incluant toutes les locales, ce qui est non seulement inutile mais consomme de l'espace…
J'ai donc voulu effacer tous les sous-dossiers autres que en et fr présents dans tous les dossiers lang (incude et plugins).
Se placer à la racine du dossier à purger.
find . -type d -wholename "*/lang/*" \( -not -name "fr" -and -not -name "en" \) -exec rm -r {} +
L'option -type d indique de chercher des dossiers.
L'option -wholename permet de fournir le motif */lang pour trouver tous les dossier nommés lang
Les parenthèses sont échappées pour ne pas faire râler le shell.
Entre parenthèses, une fonction logique pour exclure les dossiers fr et en de la recherche.
On ne peut pas utiliser l'option -delete de find car les dossiers ne sont pas vides.
L'option -exec permet de lancer la commande rm -r (effacement récursif) sur le résultat de find, les accolades représentant la liste complète et le signe + lançant le traitement en parallèle.
J'adore l'efficacité de cette ligne.