Копіюйте файли та каталоги без вмісту файлів


18

Чи є можливість скопіювати структуру каталогів з файлів, але без їх вмісту. Я маю на увазі, що я хочу точно такі ж каталоги з іменами файлів, але залишаю їх порожніми / порожніми. У мене є декілька прикладних програм на якійсь мові програмування, і я хочу їх переписати за власним стилем, але зберігаючи так, щоб вони були організовані у файли.

Буду вдячний за будь-яку допомогу.

Відповіді:


36

З man cp

--attributes-тільки не копіює файлові дані, а лише атрибути

Отже, якщо ви хочете скопіювати всі папки та файли, які є в ньому somedirectory

робити cp -R --attributes-only somedirectory destinationdirectory


Це саме те, що мені потрібно. Велике спасибі.
dagi12

4
+1, тому що я не думав, що хтось це вже реалізував - дуже здивований.
mgarciaisaia

@mgarciaisaia Я був просто здивований, як і ти, коли я перевірив сторінку чоловіка сьогодні вранці =)
Сергій Колодяжний

10

Приємно, що Ubuntu cpмає цю функцію, але якщо ви повинні опинитися на машині, яка цього не робить ( cpнаприклад, у стилі BSD немає, тому 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/{} \;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.