Скопіювати дерево каталогів без порожніх каталогів?


17

У мене є таке дерево

# upper letters = directory
# lower letters = files
A
|-- B
|-- C
    |-- D
    |-- e <= file
|-- F
    |-- G

Мені потрібно скопіювати це дерево на інше місце призначення, рекурсивно ігноруючи всі порожні каталоги. Тож пункт призначення виглядає так:

C
|-- e

Як би ви це зробили за допомогою Unix, rsync тощо?

Відповіді:



1

Існують різні рішення цієї проблеми (взяті з цієї веб-сторінки ):

Цей параметр використовує команду mkdir з командою find. Цей метод також вимагає, щоб ви знаходилися всередині вихідної папки під час виконання команди.

bash$ cd /path/to/source && find . -type d -exec mkdir -p /path/to/dest/{} ;

Використання знахідки та cpio

bash$ find /path/to/source -type d | cpio -pd /path/to/dest/

Використання Rsync

bash$ rsync -a --include '*/' --exclude '*' /path/to/source /path/to/dest

АБО

bash$ rysnc -a -f"+ */" -f"- *" /path/to/source /path/to/dest

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.