Копирование дочерних папок в несколько папок - PullRequest
0 голосов
/ 09 сентября 2011

Существует ли какой-либо сценарий sh для копирования всех дочерних элементов в папке в другие несколько папок.Я имею в виду нечто подобное.Папка ниже будет скопирована.

/Parent/ChildDir1
/Parent/ChildDir2
/Parent/ChildFile1
/Parent/ChildFile2

Пункты назначения будут такими:

/X/a/
/X/b/
/X/c/

Необходима перезапись.

Спасибо

Ответы [ 2 ]

1 голос
/ 09 сентября 2011

Как я понимаю, вы хотите скопировать все из /Parent/ в несколько папок назначения? Таким образом, каждый из /X/a/, /X/b/ и /X/c/ имеет свои независимые копии. В этом случае вы можете просто зациклить все пункты назначения следующим образом:

DESTS = "/X/a/:/X/b/:/X/c/:"
SRC = "/Parent/"
while read -d: ddir; do 
    cp -r "$SRC" "$ddir"
done <<< $DESTS

Дополнительные : в конце DESTS могут быть удалены, если вы найдете правильный вызов read, я не смог бы: (

0 голосов
/ 09 сентября 2011

Вы можете использовать find, чтобы найти все каталоги в X, то есть X / a, X / b, X / c и т. Д., А затем рекурсивно скопировать в них исходный каталог:

find /path/to/X -type d -maxdepth 1 -exec cp -r /path/to/Parent {} \;

Есливаш список каталогов находится в файле, вы можете просто прочитать каждую строку в файле и выполнить cp, например:

while IFS= read -r dir
do
    cp -r /path/to/Parent "$dir"
done < dirs.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...