Создайте файлы с точным именем как в данном каталоге

Скажите, что существует каталог foo где существуют файлы:

$ ls
001.mp4
002.mp4

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

Когда в bar Я выполняюсь:

$ find ../foo -type f |xargs -0

Я добираюсь:

../foo/001.mp4
../foo/002.mp4

Это дает мне список файлов, но с относительным путем, в то время как мне нужны только имена файлов (с расширениями).

1
задан 13 November 2019 в 23:19

3 ответа

Это сделает задание:

, В то время как в 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].

Всего наилучшего

0
ответ дан 7 December 2019 в 18:09

Возможно, более простой путь существует, но здесь как я получаю результат, который Вы ожидаете:

find ../foo -type f | while read i ; do basename "$i" ; done
0
ответ дан 7 December 2019 в 18:09

Можно попробовать это:

find ../foo -type f -exec sh -c 'touch $(basename {})' \;
0
ответ дан 7 December 2019 в 18:09

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

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