簡體   English   中英

如何按文件類型遞歸查找文件並將它們復制到目錄?

[英]How to find files recursively by file type and copy them to a directory?

我想在一個文件夾中找到所有的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

這是我嘗試的最后一個,我想我現在可以忽略權限被拒絕的錯誤,但我不確定其余的。

試試這個:

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

Paul Dardeau 的回答是完美的,唯一的問題是,如果這些文件夾中的所有文件都不是 PDF 文件,並且無論擴展名如何,您都想全部獲取怎么辦。 那么只需將其更改為

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

簡單總結一下!

像這樣的事情應該有效。

ssh user@ip.addr 'find -type f -name "*.pdf" -exec cp {} ./pdfsfolder \\;'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM