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
Другие вопросы по тегам