Bonjour à tous
Je suis débutant sous linux
J'aimerais copier un ficher et coller dans plusieurs dossiers différents. Exemple je veux copier mon_fichier pour coller dans dossier_1 dossier_2 dossier_3 etc. tous contenus dans dossier_parent. Je ne sais pas si quelqu'un peut m'aider.
merci!
# à la main
Posté par NeoX . Évalué à 2.
si c'est compliqué de repeter 3x, tu met dans un script, et ca doit d'ailleurs etre le but de l'exercice.
un script, qui prendrait le nom du fichier, et le dossier parent en parametre,
qui trouverait les dossiers de destinations, et ferait aurant de copie de de dossier final
# xargs + cp
Posté par gipoisson . Évalué à 3.
J'ignore s'il y a des solutions dans les environnements de bureau (GNOME, KDE, Xfce, …).
Sur la ligne de commande,
cp
est un des outils utilisés pour copier. Il copie une ou plusieurs sources vers une seule destination.Accomplir une copie vers plusieurs destinations revient à itérer la copie en changeant de destination à chaque nouvelle itération ; on parle aussi de boucler pour signifier « itérer ». Il existe plusieurs façons d'itérer dans l'interpréteur de la ligne de commandes car il y a de multiples langages de programmation qu'il interprète.
Je te propose un outil qui s'appelle
xargs
qui construit des arguments à passer aux commandes ultérieures à partir des résultats des précédentes.# itération dans le shell
Posté par gUI (Mastodon) . Évalué à 7. Dernière modification le 29 janvier 2017 à 20:05.
ça dépend un peu de ton shell, mais qqchose comme :
for f in dossier_1 dossier_2 dossier_3; do cp mon_fichier $folder; done
est censé marcher
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: itération dans le shell
Posté par gUI (Mastodon) . Évalué à 2.
pardon, lire
$f
et pas$folder
dans la commandecp
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
# tee
Posté par Space_e_man (site web personnel) . Évalué à 1.
Mise en place de la situation :
Copie multiple :
Vérification :
Il resterait à voir ce que cela donne avec de gros fichiers…
[^] # Re: tee
Posté par Space_e_man (site web personnel) . Évalué à 1.
Avec un fichier de ± 730 Mo (obtenu à partir de /dev/urandom), j'obtiens sur base d'une moyenne de 4 exécutions en alternance de deux scripts, l'un basé sur tar et tee, l'autre sur 3 cp successifs :
Pour tar&tee :
real 8,80s
user 0.19s
sys 4.90s
Pour 3×cp :
real 9.21s
user 0.02s
sys 3.02s
[^] # Re: tee
Posté par Kerro . Évalué à 2.
Vide le cache disque avant chaque test :
sync; sysctl vm.drop_caches=3
Je pense qu'avec ça tu auras le tar plus rapide si les fichiers sont plus gros que le cache.
Et avec des fichiers tenant dans le cache, le cp devrait être plus rapide à cause de la localité des écritures.
# dcfldd
Posté par MicP . Évalué à 1. Dernière modification le 30 janvier 2017 à 11:23.
Peut-être aussi avec dcfldd :
dcfldd if=fichSource of=rep1/fichSource of=rep2/fichSource of=rep3/fichSource
# Merci
Posté par OB.ph . Évalué à 1.
Merci à tous. J'ai la solution à mon problème
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.