Convention a adopter pour noms de fichiers
artagon7
Messages postés
417
Date d'inscription
Statut
Membre
Dernière intervention
-
artagon7 Messages postés 417 Date d'inscription Statut Membre Dernière intervention -
artagon7 Messages postés 417 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voudrais adopter une nouvelle convention pour nommer mes fichiers et repertoires sous Linux. Je me suis apercu en me pratiquant a faire des scripts bash que ca pouvait poser des problemes si on a des noms de fichiers peu conventionnels. Pourquoi courir apres le trouble. C'est ainsi que j'ai des noms de fichiers avec des espacements et ca pose un probleme (j'avais deja lu ca en quelque part mais je ne me rappelle plus ou). Par exemple, le script suivant decompose les noms de fichiers en plusieurs mots.
#!/bin/bash
rep=/media/sda5/Documents
fichiers=$(ls $rep)
for file in ${fichiers}/* ; do
var=$(echo $file | awk -F . '{print $1}')
echo $var
done
Si par exemple, j'ai le fichier exemples de scripts shell.rtf, il va le decomposer ainsi :
exemples
de
scripts
shell.rtf
Donc, on voit qu'il est preferable d'eliminer les espacements dans un nom de fichier.
Mais avant d'adopter une convention finale pour les noms de fichiers, je voulais savoir si d'autres symboles peuvent causer des problemes lorsqu'on fait des scripts shell.
a) le trait d'union -
b) apostrophe '
c) parentheses ( )
d) parentheses carrees [ ]
e) accents sur e et a
Merci,
Je voudrais adopter une nouvelle convention pour nommer mes fichiers et repertoires sous Linux. Je me suis apercu en me pratiquant a faire des scripts bash que ca pouvait poser des problemes si on a des noms de fichiers peu conventionnels. Pourquoi courir apres le trouble. C'est ainsi que j'ai des noms de fichiers avec des espacements et ca pose un probleme (j'avais deja lu ca en quelque part mais je ne me rappelle plus ou). Par exemple, le script suivant decompose les noms de fichiers en plusieurs mots.
#!/bin/bash
rep=/media/sda5/Documents
fichiers=$(ls $rep)
for file in ${fichiers}/* ; do
var=$(echo $file | awk -F . '{print $1}')
echo $var
done
Si par exemple, j'ai le fichier exemples de scripts shell.rtf, il va le decomposer ainsi :
exemples
de
scripts
shell.rtf
Donc, on voit qu'il est preferable d'eliminer les espacements dans un nom de fichier.
Mais avant d'adopter une convention finale pour les noms de fichiers, je voulais savoir si d'autres symboles peuvent causer des problemes lorsqu'on fait des scripts shell.
a) le trait d'union -
b) apostrophe '
c) parentheses ( )
d) parentheses carrees [ ]
e) accents sur e et a
Merci,
A voir également:
- Convention a adopter pour noms de fichiers
- Explorateur de fichiers - Guide
- Renommer des fichiers en masse - Guide
- Fichiers epub - Guide
- Les noms des animaux - Télécharger - Études & Formations
- Fichier impossible à supprimer - Guide
5 réponses
bonjour,
moi je dirais que le trait d'union ne pose pas de prob
apostrophe, parenthèses normale et carrée vont poser des soucis dans les srcipts
et les accents je ne sais pas bien, mais dans le doute je m'abstiens car cela peut varier avec les paramètres de langues de l'utilsateur
cdt
moi je dirais que le trait d'union ne pose pas de prob
apostrophe, parenthèses normale et carrée vont poser des soucis dans les srcipts
et les accents je ne sais pas bien, mais dans le doute je m'abstiens car cela peut varier avec les paramètres de langues de l'utilsateur
cdt
Salut,
pour eviter les soucis tu peux adopter un solution très simple
utiliser les lettres minuscules et majuscules sans accents
au lieu d'espace utilise le caractère souligne (la touche 8 sur le clavier AZERTY)
pour eviter les soucis tu peux adopter un solution très simple
utiliser les lettres minuscules et majuscules sans accents
au lieu d'espace utilise le caractère souligne (la touche 8 sur le clavier AZERTY)
a-z A-Z _
Salut lami20j,
Je reconnais lami20j que ta proposition est sans l'ombre d'un doute la plus fiable mais j'avais l'intention d'ajouter au moins le trait d'union et les parentheses ()[] dans le but d'ajouter certaines proprietes au fichier en question. Par exemple, dans le cas des images, je pourrais simplement prendre le fichier suivant (qui represente une galaxie) ngc_4414.jpg et le renommer ngc_4414[726x599](1998).jpg ou j'ai ajoute la resolution entre [] et l'annee entre ().
De cette facon, je peux interroger mon repertoire d'images avec un simple script shell en demandant d'extraire les caracteres entre les symboles en question et extraire les photos prises avant 1990 par exemple, ceux qui ont une resolution superieure a 800X624, etc..
Mon repertoire devient en quelque sorte une petite base de donnees.
C'est pour cette raison que je voulais absolument savoir quels caracteres autres que les caracteres alphanumeriques on peut mettre dans un nom de fichier sous Linux. Pour quelqu'un qui ne desire pas d'une base de donnees, il est certain que ta convention devient la plus sure.
Si quelqu'un peut me renvoyer a une bonne reference concernant les caracteres permis dans les noms sous Linux et qui ne causeront absolument aucun probleme lorsqu'on fait des scripts shell, ce serait tres tres apprecie. De plus, ca peut donner l'idee a certains d'utiliser le meme stratageme.
Merci de ta contribution lami20j,
Je reconnais lami20j que ta proposition est sans l'ombre d'un doute la plus fiable mais j'avais l'intention d'ajouter au moins le trait d'union et les parentheses ()[] dans le but d'ajouter certaines proprietes au fichier en question. Par exemple, dans le cas des images, je pourrais simplement prendre le fichier suivant (qui represente une galaxie) ngc_4414.jpg et le renommer ngc_4414[726x599](1998).jpg ou j'ai ajoute la resolution entre [] et l'annee entre ().
De cette facon, je peux interroger mon repertoire d'images avec un simple script shell en demandant d'extraire les caracteres entre les symboles en question et extraire les photos prises avant 1990 par exemple, ceux qui ont une resolution superieure a 800X624, etc..
Mon repertoire devient en quelque sorte une petite base de donnees.
C'est pour cette raison que je voulais absolument savoir quels caracteres autres que les caracteres alphanumeriques on peut mettre dans un nom de fichier sous Linux. Pour quelqu'un qui ne desire pas d'une base de donnees, il est certain que ta convention devient la plus sure.
Si quelqu'un peut me renvoyer a une bonne reference concernant les caracteres permis dans les noms sous Linux et qui ne causeront absolument aucun probleme lorsqu'on fait des scripts shell, ce serait tres tres apprecie. De plus, ca peut donner l'idee a certains d'utiliser le meme stratageme.
Merci de ta contribution lami20j,
Salut,
l'utilisation de trait d'union ainsi que les paranthèses et les crochets je ne pense pas que peux poser des problèmes
il faut seulement savoir les traités dans le script, chose faisable :-)
pas besoin de chercher trop loin :-))
ngc_4414.jpg et le renommer ngc_4414[726x599](1998).jpg
toutefois tu peux adopter une autre convention, ce qui eliminera tous les doutes
_ pour espace
__ pour crochet
___ pour paranthèse
ce qui donne
a vrai dire tu n'auras pas besoin de paranthèses
l'utilisation de trait d'union ainsi que les paranthèses et les crochets je ne pense pas que peux poser des problèmes
il faut seulement savoir les traités dans le script, chose faisable :-)
pas besoin de chercher trop loin :-))
ngc_4414.jpg et le renommer ngc_4414[726x599](1998).jpg
toutefois tu peux adopter une autre convention, ce qui eliminera tous les doutes
_ pour espace
__ pour crochet
___ pour paranthèse
ce qui donne
ngc_4414__726x569_____1998___.jpgvu que le renommage ce fait par le biais d'un script, tu n'auras qu'à ne pas oublier la convention :-))
a vrai dire tu n'auras pas besoin de paranthèses
ngc_4414__726x569__1998.jpgqu'en penses-tu?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
et puis, en généralisant le procédé on n'a plus besoin du contenu du fichier. On peut par exemple renommer le fichier cecilia25.doc (dont le nom ne dit pas grand chose, et dont il faut lire le contenu pour savoir ce dont il s'agit) en Paris_le_27_juillet_2007__Chere_Cecilia__C'est_avec_un_immense_plaisir__..._Ton_Nicolas_d_e_vou_e.
Et là comme le nom dit tout, plus besoin de contenu.
Manu.
et puis, en généralisant le procédé on n'a plus besoin du contenu du fichier. On peut par exemple renommer le fichier cecilia25.doc (dont le nom ne dit pas grand chose, et dont il faut lire le contenu pour savoir ce dont il s'agit) en Paris_le_27_juillet_2007__Chere_Cecilia__C'est_avec_un_immense_plaisir__..._Ton_Nicolas_d_e_vou_e.
Et là comme le nom dit tout, plus besoin de contenu.
Manu.
Bonjour,
Concernant la convention que tu proposes lami20j j’y ai pensé par la suite! Mais, c’est toi qui l’a rendue publique! C’est simple et c’est certain que ça élimine toutes difficultés.
Tant qu’à la suggestion de Manu, disons que c’est un peu exagéré…Quelques caractères de plus dans un nom de fichier pour en augmenter la description, ce n’est pas une si mauvaise idée que ça il me semble….
Oui, sans_surnom, tu as mille fois raison lorsque tu suggères d’éviter de mettre des espacements dans un nom de fichier. J’en sais quelque chose! Mais qu’est-ce que tu entends par "des noms à rallonge"? Pourrais-tu préciser stp.
Merci à vous tous,
Concernant la convention que tu proposes lami20j j’y ai pensé par la suite! Mais, c’est toi qui l’a rendue publique! C’est simple et c’est certain que ça élimine toutes difficultés.
Tant qu’à la suggestion de Manu, disons que c’est un peu exagéré…Quelques caractères de plus dans un nom de fichier pour en augmenter la description, ce n’est pas une si mauvaise idée que ça il me semble….
Oui, sans_surnom, tu as mille fois raison lorsque tu suggères d’éviter de mettre des espacements dans un nom de fichier. J’en sais quelque chose! Mais qu’est-ce que tu entends par "des noms à rallonge"? Pourrais-tu préciser stp.
Merci à vous tous,