Подтвердить что ты не робот

Как найти файлы рекурсивно по типу файла и скопировать их в каталог в ssh?

Я хотел бы найти все файлы pdf в папке. Он содержит pdf файлы внутри и более каталогов, которые содержат больше. Папка расположена на удаленном сервере. У меня есть доступ к ssh. Я использую терминал mac, но я считаю, что сервер, к которому я подключаюсь, - Centos.

Мне нужно найти все pdf файлы и скопировать их все в один каталог на удаленном сервере. Я пробовал около 10 вариантов без везения. Как мои, так и удаленные системы, похоже, не распознают -exec как команду, хотя exec отлично, так что проблема.

Я не уверен, в чем проблема, но команда не терпит неудачу, она просто сидит там и останавливается навсегда, поэтому у меня нет никаких полезных ошибок для публикации.

cp $(find -name "*.pdf" -type f; exec ./pdfsfolder {} \; | sed 1q)

find: ./tcs/u25: Permission denied
find: ./tcs/u68: Permission denied
-bash: /var/www/html/tcs_dev/sites/default/files/pdfsfolder: is a directory
-bash: exec: /var/www/html/tcs_dev/sites/default/files/pdfsfolder: cannot execute: Success
cp: target `./runaways_parents_guide_2013_final.pdf' is not a directory

Это последнее, что я пробовал, я думаю, что я могу игнорировать разрешение, отклоняющее ошибки, но я не уверен в этом.

4b9b3361

Ответ 1

Попробуйте следующее:

find . -name "*.pdf" -type f -exec cp {} ./pdfsfolder \;

Ответ 2

Что-то вроде этого должно работать.

ssh [email protected] 'find -type f -name "*.pdf" -exec cp {} ./pdfsfolder \;'

Ответ 3

Пол Дардо отвечает идеально, единственное, что, если все файлы внутри этих папок не являются файлами PDF, и вы хотите захватить все это независимо от расширения. Ну просто измените его на

find . -name "*.*" -type f -exec cp {} ./pdfsfolder \;

Просто подведем итоги!