Cette question est une sorte de suite à ma question précédente, Création de nombreux répertoires à l'aidemkdir
.
J'utilise la bash
coque. J'ai créé cinquante répertoires, chacun commençant par le préfixe "s", à l'aide de la commande:
mkdir $(printf "s%02i " $(seq 1 50))
qui remplit le deuxième chiffre avec des zéros. Autrement dit, les répertoires que j'obtiendrai sont de la forme s01
, s02
..., s49
, s50
.
Maintenant, je voudrais utiliser cp
pour copier un seul fichier (par exemple, test.txt
) dans chacun des cinquante répertoires. Est-il possible de faire cela d'une manière analogue à celle ci-dessus? Par exemple, est-ce que le travail suivant fonctionnerait? Je suis relativement nouveau sur Unix / Linux, donc je ne veux pas vraiment essayer jusqu'à ce que quelqu'un me donne une indication qu'il est sûr.
cp test.txt $ (printf "s% 02i.txt" $ (seq 1 50))
En regardant la man
page cp
, il ne semble pas que cp
plusieurs destinations comme celle-ci soient prises en charge, cependant:
NAME
cp - copy files and directories
SYNOPSIS
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
DESCRIPTION
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
Mandatory arguments to long options are mandatory for short options
too.
parallel -j1
, sinon il y aura un travail par cœur, et sur une machine multicœur, les travaux seront en concurrence pour les E / S.