| - le pipe sous lunix
Résolu/Fermé
A voir également:
- | - le pipe sous lunix
- Pipe macos - Guide
- Lunix ✓ - Forum Linux / Unix
- New pipe - Forum YouTube
- Instalation le systeme d'exploitation lunix ✓ - Forum Linux / Unix
- Le terme «pip» n'est pas reconnu comme nom d'applet de commande ✓ - Forum Python
4 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
9 janv. 2011 à 09:03
9 janv. 2011 à 09:03
Salut,
find /chemin -type f -name "*.txt" -exec cp -v {} /destination/ \;
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
9 janv. 2011 à 10:05
9 janv. 2011 à 10:05
Salut,
Ou avec xargs
Ou avec xargs
~$ ls txt/*.txt -1 txt/1.txt txt/adresses.txt txt/D.txt txt/fich3.txt txt/fichier.txt txt/liste_de_mots_francais.txt txt/number.txt txt/sed.txt ~$ find /home/lami20j/txt/ -type f -name '*.txt' | xargs -I f cp -v f /mnt/sda7/txt2/ « /home/lami20j/txt/fich3.txt » -> « /mnt/sda7/txt2/fich3.txt » « /home/lami20j/txt/1.txt » -> « /mnt/sda7/txt2/1.txt » « /home/lami20j/txt/liste_de_mots_francais.txt » -> « /mnt/sda7/txt2/liste_de_mots_francais.txt » « /home/lami20j/txt/number.txt » -> « /mnt/sda7/txt2/number.txt » « /home/lami20j/txt/adresses.txt » -> « /mnt/sda7/txt2/adresses.txt » « /home/lami20j/txt/fichier.txt » -> « /mnt/sda7/txt2/fichier.txt » « /home/lami20j/txt/sed.txt » -> « /mnt/sda7/txt2/sed.txt » « /home/lami20j/txt/D.txt » -> « /mnt/sda7/txt2/D.txt » ~$ ls /mnt/sda7/txt2 -1 1.txt adresses.txt D.txt fich3.txt fichier.txt liste_de_mots_francais.txt number.txt sed.txt
D'abord je te remerci.
bon j'ai compris votre méthode, mais ma question est général à propos des commandes à plusieurs arguments ^^
bon j'ai compris votre méthode, mais ma question est général à propos des commandes à plusieurs arguments ^^
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
Modifié par lami20j le 9/01/2011 à 13:22
Modifié par lami20j le 9/01/2011 à 13:22
Re,
mais ma question est général à propos des commandes à plusieurs arguments ^^
Le nombre d'arguments d'une commande dépends de la manière dont la commande (le programme) a été conçue.
Généralement une commande à la syntaxe suivante
Les options peuvent être coutres o longues.
Les arguments peuvent être : un seul argument ou plusieurs
Pour le général tu as maintenant la réponse.
Je pense que tu as plutôt besoin à propos de ton problème ce qui est plutôt concret ;-)
mais ma question est général à propos des commandes à plusieurs arguments ^^
Le nombre d'arguments d'une commande dépends de la manière dont la commande (le programme) a été conçue.
Généralement une commande à la syntaxe suivante
commande options argumentsEnsuite le caractère facultatif et/ou obligatoire des options et/ou arguments et différent pour chaque commande.
Les options peuvent être coutres o longues.
Les arguments peuvent être : un seul argument ou plusieurs
Pour le général tu as maintenant la réponse.
Je pense que tu as plutôt besoin à propos de ton problème ce qui est plutôt concret ;-)
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
9 janv. 2011 à 13:55
9 janv. 2011 à 13:55
Re-
Qu'entends-tu exactement par "arguments" ?
Si tu sous-entends par là "fichier d'entrée" et "fichier de sortie", avec les 2 solutions données ci-dessus ils sont représentés par "{}" (pour mon exemple) et par "f" pour l'exemple de lami20j et peuvent être utilisés par bon nombre de commandes.
cp -v {} {}.bak
Le premier "{}" représente le fichier d'entrée et le second "{}.bak" représente le fichier de sortie qui en fait est le même que le fichier d'entrée mais auquel on a rajouté l'extension ".bak".
Qu'entends-tu exactement par "arguments" ?
Si tu sous-entends par là "fichier d'entrée" et "fichier de sortie", avec les 2 solutions données ci-dessus ils sont représentés par "{}" (pour mon exemple) et par "f" pour l'exemple de lami20j et peuvent être utilisés par bon nombre de commandes.
$ ls -1 fich1.txt fich2.txt fich3.txt le_fich.txt mon fich.txt ton fich.txt $ find . -type f -name "*" | xargs -i -t cp -v {} {}.bak cp -v ./le_fich.txt ./le_fich.txt.bak './le_fich.txt' -> './le_fich.txt.bak' cp -v ./ton fich.txt ./ton fich.txt.bak './ton fich.txt' -> './ton fich.txt.bak' cp -v ./fich3.txt ./fich3.txt.bak './fich3.txt' -> './fich3.txt.bak' cp -v ./fich2.txt ./fich2.txt.bak './fich2.txt' -> './fich2.txt.bak' cp -v ./fich1.txt ./fich1.txt.bak './fich1.txt' -> './fich1.txt.bak' cp -v ./mon fich.txt ./mon fich.txt.bak './mon fich.txt' -> './mon fich.txt.bak' $ ls -1 fich1.txt fich1.txt.bak fich2.txt fich2.txt.bak fich3.txt fich3.txt.bak le_fich.txt le_fich.txt.bak mon fich.txt mon fich.txt.bak ton fich.txt ton fich.txt.bak $
cp -v {} {}.bak
Le premier "{}" représente le fichier d'entrée et le second "{}.bak" représente le fichier de sortie qui en fait est le même que le fichier d'entrée mais auquel on a rajouté l'extension ".bak".
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
9 janv. 2011 à 16:53
9 janv. 2011 à 16:53
Exactement, voir aussi directement sans passer par "xargs" :
find . -type f -name "*" -exec cp -v {} /mnt/backup/{}.bak \;