Linux CPIO для копирования структуры каталогов и имен файлов?
Я хочу скопировать структуру каталогов с удаленного компьютера на локальный. Я тоже хочу имена файлов, но не их содержимое.
В настоящее время я сделал это на удаленной машине:
find . -type d -print | cpio -oO dirs.cpio
затем скопировал dirs.cpio
файл на локальный компьютер, и выполнил команду после перехода в каталог, где я хочу реплицировать структуру:
cpio -iI dirs.cpio
Таким образом, это создает структуру каталогов, которую я хочу, включая подкаталоги, но не копирует имена файлов. Мне нужна структура каталогов и имена файлов, но не их содержимое.
Как я могу получить имена файлов тоже??
1 ответ
Решение
Проще без cpio. По источнику:
find . -exec ls -Fd {} + > stuff
Это делает файл со списком всех каталогов (с косой чертой благодаря ls -F
) и файлы.
По месту назначения:
./makestuff < stuff
куда makestuff
это сценарий:
while read name; do
if [ "${name:${#name}-1}" = "/" ]; then
mkdir -p "$name"
else
touch "$name"
fi
done