Я хотел бы создать архив, охватывающий всю структуру каталога, включая подкаталоги и файлы. Предпочтительно сохранение атрибутов файла, таких как время модификации. В архиве не должно быть содержимого файлов.

Другими словами, эффект, который я пытаюсь достичь, такой же, как если бы я создал точную копию каталога, урезал размеры всех файлов в нем до нуля, а затем заархивировал его с помощью tar .

Я посмотрел на различные варианты tar , и он, кажется, не поддерживает то, что мне нужно. Я думал, что будет что-то вроде --use-compress-program=true но это будет применяться ко всему архиву, а не к отдельным файлам, к сожалению. Я не заметил никаких соответствующих опций rsync .

Есть ли способ, как создать такой архив с помощью инструмента Unix?

2 ответа2

2

с первого взгляда (без даты файла / каталога):

find data -type d -exec echo mkdir -p {} \;  | ( cd tmp7 ; bash )
find data -type f -exec echo touch {} \; | ( cd tmp7 ; bash )

где

  • данные ваш источник
  • TMP7 ваш пункт назначения
0

Этот вопрос немного устарел, и мой ответ не соответствует критериям «с инструментом Unix», но что бы это ни стоило, инструмент синхронизации Windows Robocopy может сделать это с помощью простого переключателя /CREATE (он создает целое дерево файлов). от источника до места назначения, с файлами нулевой длины, но все метки времени сохраняются, даже те из каталогов, если также используется ключ /DCOPY:T). Это один из случаев, когда инструмент Windows может легко выполнить какой-то трюк, который, по-видимому, невозможен простыми средствами в системе Linux /Unix.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .