Использование find в подкаталогах и создание символических ссылок на все файлы - PullRequest
2 голосов
/ 21 марта 2012

Хорошо, я пытался обдумать это, но я изо всех сил.

Предпосылка заключается в следующем: у меня есть каталог с большим количеством подкаталогов (некоторые из которых также содержат больше подкаталогов), и у меня есть другой отдельный каталог на другом общем ресурсе, который имитирует исходный каталог в макете. Теперь мне нужен способ циклического просмотра исходного каталога, обнаружения файлов в подкаталогах и последующего создания символических ссылок на них в директории назначения.

В случае, если это не так ясно, этот пост описывает это довольно хорошо, за исключением того, что этот вопрос направлен на символические ссылки на dirs, а не на сами файлы.

edit: только что заметил, на что нацелился Kerrek, забыл включить эту ссылку: Bash скрипт для автоматического создания символических ссылок на подкаталоги в дереве

Хорошо, пока у меня есть это, основываясь на ответе Керрека:

#!/bin/bash

SOURCE="/home/simon/testdir/src"
DEST="/home/simon/testdir/dest"

cd $DEST

find $SOURCE -type f -exec ln -s -- "{}" "{}" \;

exit

, что дает следующее:

ln: creating symbolic link `/home/simon/testdir/src/new.dir/a': File exists
ln: creating symbolic link `/home/simon/testdir/src/new.dir/b': File exists
ln: creating symbolic link `/home/simon/testdir/src/new.dir/c': File exists

однако, он фактически не создает символические ссылки в директории назначения.

1 Ответ

5 голосов
/ 21 марта 2012

Как насчет использования find?

cd -- "$SOURCEDIR"

find -type d -exec mkdir --parents -- "$DESTDIR"/{} \;

find -type f -exec ln --symbolic -- "$SOURCEDIR"/{} "$DESTDIR"/{} \;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...