5

Это небольшой вопрос, но я пытаюсь скопировать все файлы .doc, которые я нахожу в каталоге, и скопировать их в другой каталог.

Я знаю каждую команду:

find -name '*.doc' .

а также:

cp filename location 

Как я могу объединить две команды?

5 ответов5

5
find /path/to/search -name "*.doc" -exec cp {} /path/to/copy/to \;

Если есть много файлов .doc, это ваш лучший вариант, чтобы не превышать ограничение на количество символов.

4

Другая возможность:

find /path/to/search -name \*.doc -print0 | xargs -0 cp --target-directory=/destination/path

Это сокращает количество вызовов команды copy по сравнению с find -exec (должно быть заметно быстрее, если у вас огромное количество файлов)

1

На солярисе вы можете использовать следующее:

find /path/to/search -name "*.doc" -exec cp {} /destination/directory \;
1

Найдите файлы, принадлежащие пользователю kelly, и скопируйте их в каталог: /opt/dir

# cd (into /path to copy files) e.g. cd /opt/
# mkdir dir (where you want to copy the files)
# find / -user kelly -exec cp -rfp {} /opt/dir/ \;
0

Обобщая свой вопрос от «.doc» в «.jpg» или других двоичных файлов изображения вам потребуется дополнительных инструментов с открытым исходным кодом, как tagim и Recoll.

tagim помечает ваши изображения ключевыми словами (или рейтингами), а затем вы можете отсортировать / отфильтровать их, используя recoll, и передать список в cp используя xargs чтобы соединить их вместе:

recollq 'ofJoe ext:jpg' | xargs cp --target-directory=~/Photos/ofJoe

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .