Есть ли способ скопировать структуру каталогов с файлами, но без их содержимого. Я имею в виду, что я хочу точно такие же каталоги с именами файлов, но оставить их пустыми / пустыми. У меня есть несколько примеров приложений на каком-то языке программирования, и я хочу переписать их в своем собственном стиле, но сохранить способ, которым они были организованы в файлах.
Буду признателен за любую помощь.
От man cp
- только для атрибутов не копируют данные файла, просто атрибуты
Так, если Вы хотите скопировать все папки и файлы, которые находятся в somedirectory
, делают cp -R --attributes-only somedirectory destinationdirectory
Хороший та Ubuntu cp
имеет эту функцию, но если необходимо оказаться на машине, которая не делает (BSD-стиль cp
не делает, например, таким образом, OS X не делает ни одного), очень легко сделать с find
. Здесь это как с двумя лайнерами (для удобочитаемости):
% cd original_dir
% find . -type d -exec mkdir -p ../copy_dir/{} \;
% find . -type f -exec touch ../copy_dir/{} \;
Если copy_dir
уже существует, можно пропустить -p
аргумент mkdir
с тех пор find
пересечет дерево каталогов сверху вниз. Для больших заданий можно сбрить другую миллисекунду или так путем завершения команд с +
вместо \;
если Ваш find
поддержки это (это, вероятно, делает).
Править: Вышеупомянутые команды забыли обрабатывать символьные ссылки, которые могут быть скопированы с третьим выполнением find
(не завершайте этого с +
):
% find . -type l -exec cp -R {} ../copy_dir/{} \;