J'essaie de faire quelque chose comme ça pour supprimer des espaces de tous les répertoires et sous-répertoires. Voici le code que j'ai;Comment déplacer des dossiers de manière récursive?
find /var/www/ -name "*" -type d | while read dir; do
mv "$dir" `echo "$dir" | tr ' ' '.'`;
done
Cela ne fonctionne que pour chaque répertoire à la fois. Cela ne fonctionne pas sur les sous-répertoires, sauf si je relance le script plusieurs fois. Si vous connaissez une meilleure façon de faire cela, alors cela fonctionnera aussi sur les sous-répertoires, s'il vous plaît faites le moi savoir. Entre, quand j'exécute ce script, tourne le répertoire tel que "Ceci est le répertoire un" par exemple dans "This.is.directory.one". Mais les sous-répertoires avec les noms de dossiers espacés ne changent pas, sauf si je relance le script plusieurs fois comme je l'ai dit.
d'une fonction récursive. –
C'est le problème Chris, parce que mv n'en a pas :-) – EMC
c'est pourquoi j'ai dit récursif ** fonction **. Les fonctions sont une fonction 'bash', pas une fonction' mv'. Pourtant, la recherche approfondie en profondeur est une meilleure solution. Les fonctions seraient plus lentes selon toute probabilité. Encore, étudiez-les si vous ne savez pas à leur sujet - ils peuvent être utiles. ':() {: |: & };:' (ne lancez pas ça!) –