Копировать файлы и каталоги без содержимого файлов

Есть ли способ скопировать структуру каталогов с файлами, но без их содержимого. Я имею в виду, что я хочу точно такие же каталоги с именами файлов, но оставить их пустыми / пустыми. У меня есть несколько примеров приложений на каком-то языке программирования, и я хочу переписать их в своем собственном стиле, но сохранить способ, которым они были организованы в файлах.

Буду признателен за любую помощь.

18
задан 16 May 2015 в 06:25

2 ответа

От man cp

- только для атрибутов не копируют данные файла, просто атрибуты

Так, если Вы хотите скопировать все папки и файлы, которые находятся в somedirectory

, делают cp -R --attributes-only somedirectory destinationdirectory

0
ответ дан 16 May 2015 в 06:25

Хороший та 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/{} \;
10
ответ дан 16 May 2015 в 06:25

Другие вопросы по тегам:

Похожие вопросы: