Скажем, у меня есть следующая иерархия каталоговСоздание символических ссылок при сохранении вложенных папок дерева
|/home
| |/john
| | |/app
| | | |/folder1
| | | | |/data1.dat
| | | | |/...
| | | |/folder2
| | | | |/...
| | | |/cfg
| | | | |/settings.cfg
| | | | |/...
| | | |/start.sh
| |/deer <-- I'm here
| | |/app
мне нужно симлинки (по космическим причинам) все файлы в/главная/джон/приложение без файлов в/главная/john/app/cfg (они настроены для каждого пользователя) в/home/deer/app, сохраняя дерево подкаталогов внутри папки приложения.
Как я могу это достичь? Я попытался использовать комбинацию rsync
(для воссоздания дерева подпапок) и find
(для перечисления файлов без них в cfg), однако у меня возникают трудности с сообщением ln
для создания символических ссылок внутри правильных подпапок.
rsync -a -f"+ */" -f"- *" /home/john/app/ app/
find /home/john/app/* -type f -exec ln -s '{}' app/ \; # I'm stuck here
Заранее спасибо.
Там нет необходимости связывать * каждый * файл под '/ дом/сортир/приложения'. Просто связывайте каждый каталог, но 'cfg', и каждый обычный файл под './app'. – agc
Это упрощение, на самом деле у меня есть еще один «плагины» dir под четвертым dir с именем «addons», который я хотел исключить, поэтому для этого мне пришлось бы пройти уровень иерархии по уровню с maxdepth, и это сделало его еще более запутанным для меня. – Robotex
Ах, второе исключение, еще в subdir ... Я прочитал это после публикации ответа, который не учитывал этого. Hmm ... – agc