Структура каталогов копии, не копируя файлы, на Mac OS X

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

Как я мог сделать это на OS X? Инструменты командной строки (rsync/find/tar/whatever), сценарии оболочки, и т.д., все приемлемы, программное обеспечение, которое я должен купить, вероятно, не.

7
задан 02.07.2015, 10:10

4 ответа

user@osx:~/from$ find . -type d -exec mkdir -p ~/to/{} \;
user@osx:~/from$ find . -type f -exec ln -s ~/from/{} ~/to/{} \;

или

user@osx:~/from$ find . -type f -exec touch ~/to/{} \;
10
ответ дан 07.12.2019, 14:29

Попробовать lndir. Из его страницы справочника:

The lndir program makes  a  shadow  copy  todir  of  a  directory  tree
fromdir,  except  that  the shadow is not populated with real files but
instead with symbolic links pointing at the real files in  the  fromdir
directory tree.
7
ответ дан 07.12.2019, 14:29

Другое решение, которое работает на меня, состоит в том, чтобы использовать rsync и исключите все файлы, например.

$ rsync -a /path/from/ /path/to/ --include \*/ --exclude \*

--include \*/ указывает, что все каталоги должны быть скопированы, и --exclude \* указывает, что все файлы должны быть исключены из копии.

Красота этого состоит в том, что новая иерархия каталогов имеет те же атрибуты, метки времени, полномочия, и т.д. как оригинал.

4
ответ дан 07.12.2019, 14:29

Это найдет каталоги во временном файле, удалит продвижение/home/bryan/от них и создаст новые каталоги

  for i in `find /home/bryan/temp -type d| sed 's/\/home\/bryan\///g'`
  do mkdir $i
  done

Я предлагаю ввести в коде одну строку за один раз (этот способ, которым точки с запятой (не показанный) будут помещены правильно),

0
ответ дан 07.12.2019, 14:29

Теги

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