J’essaie de parcourir des dossiers et des sous-dossiers (uniquement, aucun fichier ne peut être modifié) dans un répertoire donné qui comporte des traits de soulignement principaux et supprime ces traits de soulignement. Je prévois d’accomplir cela avec un simple script shell:
for folder in ./_* do mv "$folder" "${folder:1}" done
Le script ci-dessus ne fonctionne pas encore à la spécification pour deux raisons que j’essaie de corriger ici: ./_*: No such file or directory
) ou en sélectionnant des dossiers qui ne comportent pas de caractères de soulignement principaux. – deux, il ne spécifie pas uniquement les dossiers … existe-t-il une option pour la commande mv
qui peut le faire?
Merci
Pour trouver tous les dossiers commençant par des traits de soulignement, utilisez cette find
:
find . -type d -name '_*'
Et pour supprimer _
utiliser:
find . -type d -name '_*' -exec bash -c 'f="$1"; mv "$f" "${f:1}" - {} \;
Utiliser bash4 de manière récursive:
shopt -s globstar for dir in **/_*/; do mv "$dir" "${dir:1}" done