Рекурсивно копировать файл во все самые глубокие подкаталоги

Вы можете настроить apt, отредактировав файл/etc/apt/apt.conf

Примеры приведены в /usr/share/doc/apt/examples/configure-index.gz

.
1
25.07.2020, 15:27
2 ответа

Вы можете использовать:

find. -type d -links 2 -exec cp  file  {} \;

Он найдет каталоги с двумя жесткими ссылками и затем скопирует ваш файл в этот конкретный каталог.

0
18.03.2021, 23:18

Решение :В каталоге, содержащем bar,

find. -type d -links 2 -exec cp bar {} \;

Ваша первоначальная попытка

find. -exec cp -r bar {} \; -type d -links 2

не содержит синтаксических ошибок, но ведет себя не так, как вы ожидали. Поскольку -execпредшествует фильтрам -typeи -links, фильтры никогда не применяются, и execполучает все, что находится в (, включая )текущий каталог, не только обычные файлы, но и каталоги. Если вы не уверены, проверьте вывод

find. -exec echo X{}X \; -type d -links 2 -exec echo Y{}Y \;

Вы увидите, что все файлы перечислены между двумя X, но только правильные dir{3,5,7}файлы между двумя Y. Это объясняет, почему barпоявляется и в средних каталогах.

Кроме того, опция -rактивирует рекурсивное копирование. Поскольку копируется обычный файл (bar), -rне нужен.

1
18.03.2021, 23:18

Теги

Похожие вопросы