Cette question est une sorte de suite à ma question précédente, Création de nombreux répertoires à l'aidemkdir .
J'utilise la bashcoque. 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 cppour 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 manpage cp, il ne semble pas que cpplusieurs 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.