Скажите, что существует каталог foo
где существуют файлы:
$ ls
001.mp4
002.mp4
Будучи в другом каталоге bar
Я хотел бы иметь те же файлы как в bar
но пустой. Что имеет, я попробовал до сих пор:
Когда в bar
Я выполняюсь:
$ find ../foo -type f |xargs -0
Я добираюсь:
../foo/001.mp4
../foo/002.mp4
Это дает мне список файлов, но с относительным путем, в то время как мне нужны только имена файлов (с расширениями).
Это сделает задание:
, В то время как в bar
выполняет следующую команду, изменяющуюся /PATH_TO/foo/
с реальным путем к foo
:
ls -p /PATH_TO/foo/ | grep -v / | xargs touch
<час> Explaination:
ls -p
перечислит весь эти , файлы и каталоги в каталоге пути и опции-p
добавят/
к именам каталогов.grep -v /
исключит каталоги путем удаления всех объектов, содержащих/
на их имена, оставляя только имена файлов в выводе.xargs touch
создаст пустые файлы в [1 110] с именами, дублированными от всех имен файлов, найденных в [1 111].
Всего наилучшего
Возможно, более простой путь существует, но здесь как я получаю результат, который Вы ожидаете:
find ../foo -type f | while read i ; do basename "$i" ; done
Можно попробовать это:
find ../foo -type f -exec sh -c 'touch $(basename {})' \;