LINUX.ORG.RU

Скопировать дерево каталогов без файлов

 , , ,


0

2

Необходимо скопировать дерево каталогов так что бы
1) Скопировались только каталоги, без файлов и 2) Сим.линки только на каталоги

Возможно ли такое? Есть идея конечно просто копировать и find -type -exec обработавать, но в зависимости от объма долго может быть

Пример того что нужно скопировать

└─$ tree dir/
dir/
├── Новый каталог
│   ├── DIR1
│   ├── DIR2
│   ├── Link to DIR1 -> ../Новый каталог/DIR1
│   └── Новый каталог 1
│       ├── Новый каталог 1
│       │   └── Новый файл
│       └── Новый файл
├── Новый каталог 1
│   └── Новый файл
└── Новый файл

Даже, если знаете, как без симлинков поступить, подскажите, пожалуйста, тоже сойдет

★★★★★

Последнее исправление: NK (всего исправлений: 1)

Пройди по первой строчке в гугле.

anonymous
()
CP="cp -r -f --preserve=mode,ownership,timestamps"

while read directory; do
	$CP "source/$directory" "destination/$directory"
done < <(find 'source/' \( -type 'd' -or -type 'l' \) -printf '%P\n')
kalterfive ★★
()
Последнее исправление: kalterfive (всего исправлений: 5)

долго может быть

Можно ещё собрать все директории и установить их через install -d. А вот разом (потом) скопировать все симлинки не получится.

kalterfive ★★
()
Последнее исправление: kalterfive (всего исправлений: 4)

rsync dir only

Первая ссылка в гугле.

$ rsync -av -f"+ */" -f"- *" /var/log ./

justAmoment ★★★★★
()

По второму пункту, если допустить, что у тебя нет пустых файлов, тогда попробовать сделать так

$ rsync -av --max-size=0 /var ./

justAmoment ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.