C'est toute la puissance de l'association des commandes sous Linux, et en particulier celle de la commande
find. L'intérêt est de montrer l'utilisation correcte de la commande find (et éviter les chainages hasardeux avec ls/sed/cut etc...) , et que l'on peut bâtir de très nombreuses variantes sur ce principe - même pour des opérations plus simples - .
Comment reproduire toute l'arborescence d'un répertoire local donné - sans son contenu - sur un serveur distant :
Code :
1 2 3
| find /home/repertoire_local/ -type d -print0 | \
ssh -p port user@server \
'while read -r -d "$(printf "\000")" -r dir; do test -d "$dir" || mkdir -p "$dir"; done' |
C'est une seule et même ligne de commandes chainées, décomposées comme suit :
1ere ligne: on cherche les répertoires dans /home/repertoire_local/ ,
2eme ligne : on se connecte en ssh au serveur distant,
3eme ligne: sur le serveur connecté, on boucle sur les noms de répertoires locaux trouvés par
find et on les crée s'ils n'existent pas.