web-dev-qa-db-ja.com

ファイルタイプごとにファイルを再帰的に検索し、sshでディレクトリにコピーする方法は?

フォルダー内のすべてのpdfファイルを検索したいです。内部にはpdfファイルが含まれ、さらに多くのディレクトリが含まれています。このフォルダーは、私がsshアクセスできるリモートサーバー上にあります。 Mac端末を使用していますが、接続しているサーバーはCentosであると考えています。

すべてのpdfを検索し、それらをすべてリモートサーバー上の1つのディレクトリにコピーする必要があります。私は運のない約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

これは私が最後に試したものです。今のところ許可拒否エラーを無視できますが、残りについてはわかりません。

44
lorless

これを試して:

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

Paul Dardeauの答えは完璧です。唯一のことは、これらのフォルダー内のすべてのファイルがPDFファイルではなく、拡張子に関係なくすべてを取得したい場合です。に変更するだけ

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

まとめると!

4
gadget

このような何かが動作するはずです。

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

4
ptierno