To pytanie jest kontynuacją mojego wcześniejszego pytania, polegającego na tworzeniu wielu katalogówmkdir
.
Używam bash
powł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ć cp
do 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 man
stronę cp
, nie wygląda na to, że cp
obsł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.