Копирование изображений в bash без изменения вложенных папок [закрыто]

Могу ли я скопировать файлы *. Png без изменения адреса и имени вложенных папок?

Пример: Скопируйте / photo в / pic ] преобразование /photo/2017/hello.png в /pic/2017/hello.png .

0
задан 13 June 2018 в 14:51

2 ответа

Сначала создайте каталог, в который вы хотите скопировать:

mkdir -p pic/2017

Затем скопируйте файлы. Обычно достаточно просто cp:

cp photo/2017/*.png pic/2017/

. Как вы упомянули, слишком много файлов, и вы, вероятно, получите ошибку «Список аргументов слишком длинный», мы будем использовать printf и xargs для запуска cp так часто, как это необходимо:

printf "%s\0" photo/2017/*.png | xargs -0 cp -t pic/2017/

Вы также можете использовать mcp из пакета mmv Install mmv следующим образом: [ 1119]

mcp -n "photo/2017/*.png" pic/2017/

-n давайте mcp только перечислим изменения, удалим их, чтобы фактически выполнить копирование. Обратите внимание на звездочку , процитированную : она не оценивается оболочкой, а скорее mcp.

1
ответ дан 29 October 2019 в 03:02

То, что вы хотите, это скопировать каталог рекурсивно. Так что сделайте:

cp -a /photo /pic

Это рекурсивно скопирует все файлы и каталоги и сохранит метаданные файла.

Если /photo содержит файлы, которые не являются png файлами, которые вы не хотите копировать, вы можете сделать это после выполнения вышеуказанной команды:

find /pic -not -iname '*.png' -type f -print0 | xargs --no-run-if-empty -0 rm

0
ответ дан 29 October 2019 в 03:02

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

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