Je n'ai pas eu beaucoup de succès pour trouver une version Linux de namemangler , dont j'ai besoin pour renommer 1000 fichiers afin qu'ils soient lisibles sous Windows.
Quelqu'un connaît-il un programme Linux capable de faire cela?
Si ce n'est pas le cas, un script peut fonctionner car je n'ai besoin que de renommer tous les fichiers d'un dossier en, disons, les 16 premiers caractères. Je soupçonne que la route du script pourrait être utile, mais je ne sais pas par où commencer.
Réponses:
Sur Debian, Ubuntu et dérivés, si vous entrez
man rename
à l'invite de commande, vous obtiendrez la page de manuel pour un utilitaire de changement de nom qui permet d'utiliser des commandes d'expression régulière de type Perl arbitraires dans le changement de nom.Par exemple, cela raccourcira (en tronquant) tous les fichiers du répertoire actuel à une longueur de cinq:
Il fonctionne en capturant les cinq premiers caractères puis en les utilisant dans la substitution, en supprimant le reste.
Un autre exemple est de raccourcir les noms de fichiers (sans extension) à cinq caractères tout en préservant l'extension:
Il capture deux groupes, le premier étant les cinq premiers caractères, le second étant l'extension. Cela tournerait
myCarefullyCraftedDocument.pdf
enmyCar.pdf
.Avertissement: utilisez-le soigneusement, de préférence sur une copie de votre répertoire, ou en effectuant d'abord des sauvegardes. Tu étais prévenu!! Au minimum, utilisez d'
rename -n
abord, qui vous montrera ce qui serait fait sans le faire.la source
Vous pouvez déplacer des fichiers en conflit vers un autre répertoire:
la source
Vous pouvez écrire un script pour raccourcir les noms de fichiers et supprimer les caractères que Windows n'aime pas en quelques lignes de bash. Attention, code non testé, saisi directement dans mon navigateur.
Si vous avez besoin de récursivement dans des sous-répertoires, appelez un script shell à partir de
find -depth -exec …
. Ou utilisez zsh au lieu de bash; dans zsh,**/*(od)
s'étend à tous les fichiers du répertoire courant, récursivement, avec des fichiers imbriqués plus profondément en premier.la source
Les scripts shell / python / perl pour ce genre de chose sont très bien, mais il semble qu'une application gui serait la meilleure pour vous, donc je recommanderais pyRenamer , qui peut faire exactement ce que vous voulez, entre autres choses (opérations courantes simples via des préréglages [se débarrasser des espaces, tronquer le nom de fichier d'un point à un autre], recherche / remplacement simple, regex compliqué, prévisualisateur, etc.).
Votre distribution pourrait même l'avoir dans son référentiel de logiciels (Fedora le fait).
la source
Certains systèmes n'ont pas la
rename
commande, donc comme alternative à la réponse de paxdiablo, voici comment faire la même chose avecmv
.Le
-b
drapeau en mouvement crée une sauvegarde des fichiers qui seraient supprimés ou écrasés. En modifiant le modèle de glob dans la boucle for, vous pouvez ajuster les fichiers sur lesquels il s'exécute, en utilisant*
lui-même pour s'exécuter sur tous les fichiers.la source
echo
une pipe (cela pourrait être très cher si vous avez beaucoup de fichiers), utilisez plutôt un hérédoc ou une herestring.eval 'echo $BASH_SUBSHELL'
eteval 'echo $BASH_SUBSHELL' | cat
.time
en utilisant une boucleecho $i | sed
et une autresed ... <<<$i
, et l'héritage a pris environ 2/3 du temps de l'écho.<<
démarre un <i> doc </i> ici, qui est multiligne et nécessite des délimiteurs.<<<
crée une <i> chaîne </i> ici, qui ne prend qu'une variable / chaîne. Essayez,var=abc // cat<<<$var // cat <<$var
.Si vous avez besoin d'expérimenter avec renommer des fichiers et que vous avez installé des bibliothèques KDE sur votre système (ou si cela ne vous dérange pas de les ajouter), consultez krename.
Il vous permet de faire plusieurs tâches de changement de nom simples directement avec ses outils et permet également des expressions régulières pour des situations plus compliquées.
Il vous montre un aperçu des fichiers renommés lorsque vous créez les conditions de changement de nom. Il vous permet également de renommer à nouveau les mêmes fichiers, ce qui est utile si vous voulez faire quelque chose de compliqué alors que le faire par étapes réduirait la complexité de chaque étape en quelque chose que vous pouvez comprendre rapidement.
la source
la source