To pytanie jest kontynuacją mojego wcześniejszego pytania, polegającego na tworzeniu wielu katalogówmkdir .
Używam bashpowłoki. Utworzyłem pięćdziesiąt katalogów, każdy rozpoczynający się od przedrostka „s”, za pomocą polecenia:
mkdir $(printf "s%02i " $(seq 1 50))
który dopełnia do drugiej cyfry zerami. Oznacza to, że katalogi, które mogę otrzymać są postaci s01, s02, ..., s49, s50.
Teraz chciałbym użyć cpdo skopiowania jednego pliku (na przykład test.txt) do każdego z pięćdziesięciu katalogów. Czy można to zrobić w sposób analogiczny do powyższego? Na przykład, czy następujące działania będą działać? Jestem stosunkowo nowy w systemach Unix / Linux, więc tak naprawdę nie chcę tego próbować, dopóki ktoś nie poda mi wskazówki, że jest bezpieczny.
cp test.txt $ (printf "s% 02i.txt" $ (seq 1 50))
Patrząc na manstronę cp, nie wygląda na to, że cpobsługuje wiele takich miejsc docelowych, jednak:
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, w przeciwnym razie będzie jedno zadanie na rdzeń, a na maszynie wielordzeniowej zadania będą konkurować o IO.