2013-04-25 6 views
0

Я используюСкопируйте файлы, соответствующие имени в разных папках

find ../../ -type f -name <filename>*.PDF -print0 | xargs -0 cp --target-directory=Directory name with path>; 

но копия только один file.It не копирует все файлы, имеющие это же имя. Мне нужно количество файлов, которые нужно искать и копировать, которые имеют одинаковое имя, но оно создано в разные дни и в другой папке. как решить эту проблему. Pl. сделать это срочно ... Сегодня я должен закончить поиск сценариев. Я уже создал лот, я больше сталкиваюсь с этой проблемой.

Спасибо в продвижении.

+4

Как скопировать файлы с тем же именем в одну папку? они переписывают друг друга. – perreal

+0

, чтобы создать дублирующее базовое имя, вы можете создать tar-архив вместо сохранения файлов в тот же каталог: 'find ../../ -iname \ *. Pdf -type f -print0 | tar --null -T - -cf/path/to/pdfs.tar' ИЛИ добавить уникальные суффиксы для дублирования имен файлов во входном файле: 'find ... -print0 | perl -MFile :: Basename -0lpe's/$/"." , $ f {basename $ _}/e, если $ f {basename $ _} ++ '| xargs -0 ... ' – jfs

ответ

0

Это даст вам дубликаты файлов. Если у вас есть имя, вы можете find их и удалять их с помощью сценария:

for i in `find .|grep pom.xml`; do 
    basename $i; 
done |sort|uniq -c|sort -n|cut -b9- 

PS: все это в спешке. Добавление срочности к вашим сообщениям обычно неодобрительно в StackOverflow, и вы можете запросить противоположную реакцию

+0

Я не хочу удалять. Я хочу скопировать его. Find ../../ -type f -name * .PDF -print0 | xargs -0 cp --target-directory = имя каталога с помощью пути>; – lalit

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