2016-07-29 2 views
0

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

find /tempL/6453/ -name "*.jpg" | xargs -I '{}' cp {} /tempL/; 

но перезаписать файлы с таким же именем

, например, в /tempL/6453/, есть test (1).jpgtest (2).jpg и папка 1, в /tempL/6453/1/, там также есть файлы с таким же именем test (1).jpgtest (2).jpg

Если я использую вышеуказанную команду, есть только два файла test (1).jpgtest (2).jpg в /tempL/, он не может скопировать все файлы в /tempL/.

Что я хочу, это скопировать все файлы в /tempL/, если есть одно и то же имя файла, просто переименуйте их, как?

+0

ср * .jpg/Темпл/ –

+0

Cp * .jpg PUT_DESTINATION_PATH –

+0

@OmidCompSCI Пожалуйста, прочитайте вопрос тщательно. По общему признанию, это может быть сформулировано лучше, но ясно, что OP хочет переименовать файлы, имеющие одно и то же имя в любом из исходных каталогов. Ваши предложения не переименовываются и не рекурсируют исходные подкаталоги. – kaylum

ответ

0

Что я хочу, это скопировать все файлы в/tempL /, когда есть одно и то же имя файла, просто переименуйте их, как?

1) Если вы только не то, что перезапись cp --backup даст вам резервную копию существующего файла, с возможностью --suffixcp, вы также можете указать суффикс использовать для резервного копирования.

2) --parents вариант cp сохранит дерево каталогов, то есть файлы в папке 1 будут скопированы в новую созданную папку 1.

3) Если вы хотите настроить обработку переименования, вы не можете использовать команду cp. написать сценарий для него и вызвать его для обработки результата find

Смежные вопросы