#1 Le 07/04/2021, à 14:39
- JoZ79
copie de fichiers selon une partie de leurs noms
Bonjour,
Je suis à la recherche d'une solution pour extraire des fichiers en fonction de leurs noms.
le système créé des copies de fichiers en ajoutant un # à la fin du nom et je souhaiterai extraire seulement le fichier original (sans le # donc).
Pour être plus concret, voici un exemple :
dossier1
fichier1.doc
fichier2.doc
ficher2#.doc
fichier3.doc
fichier3#.doc
fichier4.doc
fichier5.doc
Dans cette liste, les fichiers que je veux copier dans un autre répertoire sont fichier2.doc et fichier3.doc
J'ai réussi à lister les fichiers avec la commande "find -name *#*" mais je ne sais pas comment mettre à profit cette liste.
Si quelqu'un a une solution je suis preneur !!!
Hors ligne
#2 Le 07/04/2021, à 15:11
- Zakhar
Re : copie de fichiers selon une partie de leurs noms
Tu peux exécuter une commande avec 'find" pour chacun des fichiers trouvés.
C'est l'option -exec de find.
Comme elle ne prend qu'un seul paramètre : le fichier trouvé, c'est parfois un peu suant !..
Donc tu fais un script qui va recevoir en entrée "ficher2#.doc" et faire la copie en ayant au préalable retiré le # du nom du fichier.
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#3 Le 07/04/2021, à 15:25
- pingouinux
Re : copie de fichiers selon une partie de leurs noms
Bonjour,
Avec ton exemple :
$ for f in *#.doc; do echo "$f" "${f/\#/}"; done
fichier2#.doc fichier2.doc
fichier3#.doc fichier3.doc
Comande à adapter en fonction de ce que tu veux faire.
Hors ligne