Nous avons créé de nombreux dossiers et fichiers contenant le caractère "<".
Est-il possible de supprimer en masse ces caractères?
Nous avons créé de nombreux dossiers et fichiers contenant le caractère "<".
Est-il possible de supprimer en masse ces caractères?
Vous pouvez le faire assez simplement et rapidement dans le Terminal:
cd / chemin / vers / démarrer / renommer
find. -nom '* \ < *' | tandis que lu f; do echo mv "$ f" "$ {f // \ < /}"; done
La commande ci-dessus est une "exécution à sec" de la commande ci-dessous:
find. -nom '* \ < *' | tandis que lu f; faire mv "$ f" "$ {f // \ < /}"; done
Ceci supprimera tous les caractères <
de manière récursive sur les fichiers et les dossiers en commençant par le chemin d'accès dans lequel vous vous êtes rendu initialement.
Résultat:
mv ./<folder<test< ./foldertestmv ./<test3.txt ./test3.txtmv ./test2<.txt ./test2<.txt ./test2.test. / pré>
J'utilise Name Mangler 3 pour renommer les fichiers et les dossiers. Il existe des options gratuites, mais Name Mangler offre une tonne de fonctionnalités qui valent largement les 19,00 $ pour moi.
Voici Name Mangler sur MacUpdate qui comprend des liens vers de nombreux programmes similaires.
Une des nombreuses choses qui rend l'utilisation d'un outil comme Name Mangler utile est que vous peut annuler vos modifications, afficher un historique de vos modifications et créer un "droplet" qui rend l'exécution du changement de nom sur d'autres fichiers très pratique. Tout cela en plus de pouvoir utiliser Regex pour créer des noms très compliqués.
Il existe également un excellent Groupe Google Name Mangler où vous pouvez obtenir des réponses à vos questions et des fonctionnalités très avancées et les méthodes sont discutées. Ils m'ont beaucoup aidé.
Vous pouvez facilement le faire avec un script shell (gratuit), par exemple:
! # / bin / kshpour fileirname dans `ls -1 * \ < *` # Remarque ls -1 (un) pas l'alphabet Ldo NEW_NAME = $ (echo "$ fileirname" | sed 's / \ < // g') mv "$ fileirname" "$ NEW_NAME" echo "Changement de nom de $ fileirname à: $ NEW_NAME" terminé
Cela peut être fait avec shellscript ou Automator, mais peut-être NameChanger pourrait être l'option la plus simple, c'est donationware - NameChanger-MRRSoftware
En tant que modification de la réponse de I'L'I, pour remplacer un caractère par un trait de soulignement (ou quelle que soit votre préférence), vous pouvez utiliser:
trouver. -nom '* \ < *' | tandis que lu f; do echo mv "$ f" "$ {f // \ < / _}"; terminé
La commande ci-dessus est une "exécution à sec" de la commande ci-dessous:
trouver. -nom '* \ < *' | tandis que lu f; faire mv "$ f" "$ {f // \ < / _}"; terminé
Note 1: Vous pouvez remplacer le _ par le caractère de votre choix.
Note 2: Parce que le "<" est un caractère spécial, vous devez remplacer placez le caractère d'échappement \
devant lui. Si vous essayez de remplacer un caractère différent tel que deux-points :
, vous n’avez pas besoin du \ devant lui. (La barre oblique inverse apparaît deux fois sur chaque ligne ci-dessus).
Note 3: Assurez-vous d'essayer d'abord le test à sec au cas où quelque chose ne serait pas tout à fait correct. Assurez-vous également de sauvegarder vos fichiers au préalable au cas où vous auriez mal saisi quelque chose.
..., *, (,), @
et les traits de soulignement de début _
dansun répertoire unique. cd / chemin / vers / dossier / avec / offending / filenames /
pour fichier en ./*
faire mv "$ fichier" "$ {fichier // ([* \ (\) @ _ $] | \. \. \.) /}"
terminé