Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mauvais noms de fichiers

7 réponses
Avatar
jp
bonjour,

Lors d'une gravure, k3b m'indique que des noms de fichiers contiennent des
caractères non autorisés mais sans me dire quels noms exactement.

Je voudrais lister tout mon disque et 'repérer' ces fichiers avec quelque
chose du genre:

sudo ls -laR | cut -d" " -f10 | grep ".*[^a-zA-Z0-9_-]"

mais ça ne fonctionne pas....
Des idées pour résoudre ce problème ?

merci,
jip

7 réponses

Avatar
Fabien LE LEZ
On Sat, 01 Dec 2007 10:49:04 +0100, jp :

sudo ls -laR | cut -d" " -f10 | grep ".*[^a-zA-Z0-9_-]"


Groumpf... ls est rarement la bonne solution pour ce genre de plan.
Utilise plutôt find.

Et pourquoi as-tu besoin de sudo ? Si tu n'as pas accès à certains
fichiers, peut-être est-ce pour ça que k3b râle ?

Avatar
jp
Fabien LE LEZ wrote:

On Sat, 01 Dec 2007 10:49:04 +0100, jp :

sudo ls -laR | cut -d" " -f10 | grep ".*[^a-zA-Z0-9_-]"


Groumpf... ls est rarement la bonne solution pour ce genre de plan.
Utilise plutôt find.

Et pourquoi as-tu besoin de sudo ? Si tu n'as pas accès à certains
fichiers, peut-être est-ce pour ça que k3b râle ?
sudo car je lance la commande depuis une console en simple utilisateur mais

que je veux en profiter pour vérifier les noms de tous les fichiers
actuellement sur mon pc.
quand k3b a râlé, je faisais une sauvegarde des mes fichiers /home/user
le problème ne vient donc pas d'un problème de droit (tous mes fichiers
m'appartiennent bien).
merci pour le conseil; je vais voir du côté de find.

jip


Avatar
jp willm

Je voudrais lister tout mon disque et 'repérer' ces fichiers avec quelque
chose du genre:

sudo ls -laR | cut -d" " -f10 | grep ".*[^a-zA-Z0-9_-]"

Des idées pour résoudre ce problème ?
Je n'ai pas la bonne réponse, mais une réponse quand-même :


Sous KDE, j'utilise krename pour corriger ce genre de problème.

On peut éditer des règles du genre : "Trouver à et remplacer par a"
Transformer les extension de fichier en minusucule
Etc...

Faire des essais sur des copies avant de se lancer en réel !!!

--
jp willm
http://perso.orange.fr/willms/index.html

Avatar
Luc.Habert.00__arjf
find . -name '*[^a-zA-Z0-9_-]*'
Avatar
jp
Luc Habert wrote:

find . -name '*[^a-zA-Z0-9_-]*'


Merci beaucoup,


J'ai un peu compliqué par:
find . -name "*[^a-zA-Z0-9_-. :*$+@(){}=~#%[]'/]*"
et
sudo find / -name "*[^a-zA-Z0-9_-. :*$+@(){}=~#%[]'/]*"
pour examiner le disque en entier.

J'ai sur ma machine ce genre de fichier:
/usr/share/doc/console-tools/examples/♪♬
(les 2 derniers caractères sont des "notes de musiques" !)

En 'jouant' à supprimer des caractères dans la chaîne d'exclusion:
^a-zA-Z0-9_-. :*$+@(){}=~#%[]'/
on liste des fichiers aux noms curieux, qui vont contenir ce(s)
caractère(s); par exemple, il y a des noms de fichiers qui
contiennent des %, des @, des {, etc.

Je pensais (naïvement) que les noms de fichiers devaient respecter des
règles strictes...
hé bien, non:
http://linuxfr.org/forums/10/3589.html

Encore merci,

bonne soirée,
jip

Avatar
Fabien LE LEZ
On Sat, 01 Dec 2007 18:32:08 +0100, jp :

Je pensais (naïvement) que les noms de fichiers devaient respecter des
règles strictes...


Je confirme : un nom de fichier ne doit contenir ni le '/', ni ''
(le caractère de code ASCII 0).
Un 'n' (retour à la ligne), par contre, est parfaitement autorisé.

Avatar
Nicolas George
Fabien LE LEZ wrote in message
:
(le caractère de code ASCII 0).


L'octet 0. Les noms de fichiers sous Unix sont des suites d'octets, pas de
caractères.