2013-08-20 1 views
30

pdfのファイルをすべてフォルダ内に置いておきたいと思います。それにはpdfのファイルが含まれ、さらに多くのディレクトリにはさらに多くのファイルが含まれています。このフォルダは、sshにアクセスできるリモートサーバ上にあります。私は、MAC端末を使用していますが、私が接続しているサーバーはCentosだと思います。ファイルの種類ごとにファイルを再帰的に検索し、sshでディレクトリにコピーする方法はありますか?

すべてのpdfsを見つけて、すべてをリモートサーバーの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 

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

答えて

95

はこれを試してみてください。このような

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

ありがとうございました。しばらくの間そこに座っていましたが、私はそれがアクセス権のエラーと関係していると思います。 – lorless

+2

execコマンドの一部として '\;'は何をしますか? – user3728501

+0

@ user3728501これはexec式を終了します –

2

何かが動作するはずです。

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

+1

'exec'コマンドの一部として' \; 'は何をしますか? – user3728501

+0

@ user3728501 http://stackoverflow.com/questions/20913198/why-are-the-backslash-and-semicolon-required-with-the-find-commands-exec-optio – ptierno

1

ポールDardeauの答えは完璧で、唯一のものであり、どのようなそれらのフォルダ内のすべてのファイルがPDFファイルではありません、あなたはすべての関係なくに拡張子をそれをつかむしたい場合。まあそれだけに変更してください

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

ただまとめてください!

関連する問題