nom de fichiers de + de 64 caractères - Linux et OS Alternatifs
Marsh Posté le 28-01-2005 à 17:46:32
Avec find (à creuser), par ex:
Code :
|
Suffit de lancer la commande dans un shell, ou alors éventuellement de le mettre dans un fichier exécutable. Le signe / (racine) peut être remplacée par n'importe quel emplacement de recherche souhaité. Sont alors renvoyé tous les fichier dont le nom fait au minimum 64 caractères (indépendamment de leur extension). La sortie et les résultats de recherche obtenus sont affichés sur l'écran.
Il peut être utile cependant d'avoir une sortie fichier ; le plus simple est alors de créer un fichier vierge à cet effet (supposons qu'on le crée dans /home/user et qu'il se nomme listfiles.txt) et d'utiliser le script suivant :
Code :
|
Y a peut être plus élégant au niveau au niveau du motif de test, mais c'est fonctionnel...
Marsh Posté le 28-01-2005 à 17:46:47
Rechercher le 65 caractère du nom de fichier...
#!/bin/sh |
Marsh Posté le 28-01-2005 à 18:44:54
le problème du find c'est qu'il sort le nom + le chemin du fichier.
Marsh Posté le 28-01-2005 à 19:57:46
basename permet de régler le pb en ne gardant que le nom du fichier
Marsh Posté le 28-01-2005 à 20:20:52
en effet.
Je me prends
basename: Trop de arguments.
Pour en savoir davantage, faites: « basename --help ».
avec le script ci-dessus. Ya pas un soucis quand il ya un espace dans le nom ?
Marsh Posté le 28-01-2005 à 20:27:36
Il faut ajouter des guillemets
Citation : car65=$(basename "$i" | cut -c 65) |
Marsh Posté le 28-01-2005 à 20:33:50
ça semble impec. Ce script permet de visualiser les fichiers non conforme à la norme joliet. (du moins pour la longueur des fichiers)
Marsh Posté le 28-01-2005 à 23:48:25
ceric35 a écrit : Il faut ajouter des guillemets
|
Effectivement mais dans ce cas, si le 65ème caractère est un espace ça marche pas.
Solution: remplacer les espaces du nom de fichier par un autre caractère ("_" )
car65=$(basename "$i" | sed -e 's/\ /_/' | cut -c 65)
Marsh Posté le 29-01-2005 à 00:03:41
On peut aussi tout simplement utiliser la fonction
expr length "chaine" |
qui renvoie la longueur d'une chaine
Marsh Posté le 28-01-2005 à 16:33:21
Je cherche un script me sortant le nom et l'emplacement de tous les fichiers dont le nom dépasse 64 caractéres. Ces fichiers pouvant être dans une arborescence complexe.
Vous avez une idée pour faire ça ?
---------------
Jotenakis