如何將目錄(及其子目錄)中的所有 pdf 檔案遞歸複製到單一輸出目錄中?

如何將目錄(及其子目錄)中的所有 pdf 檔案遞歸複製到單一輸出目錄中?

我有一個包含大量 PDF 檔案的目錄,其中一些位於子目錄中(可以擴展到幾層深度)。我想將所有匹配的檔案移動*.pdf到名為 的單一輸出資料夾papers

我怎樣才能做到這一點?

答案1

如果您bash在最新版本中使用,您可以從以下globstar選項中受益:

shopt -s globstar
mv **/*.pdf papers/

答案2

  find /bunchopdfs -name "*.pdf" -exec mv {} /papers \;    

這是我做的一個測試

$ ls -R
.:
a  aaa bbb.pdf  pdfs

./a:
foo.pdf

./pdfs:

請注意文件“aaa bbb.pdf”。

$ find . -name "*pdf" -exec mv {} pdfs \;
$ ls -R
.:
a  pdfs

./a:

./pdfs:
aaa bbb.pdf  foo.pdf

答案3

find -print0 /directory/with/pdfs -iname "*.pdf" | xargs -0 mv -t /papers

(類似於另一個答案,但我更喜歡 pipeline/xargs/mv ...對我來說更直觀)

僅供參考,我在多個目錄和多個 pdf 檔案上成功執行了上述一行腳本。

答案4

如果您只深入搜尋一個目錄,您可以這樣做:

mkdir <destination>
mv */*.pdf <destination>

其中<destination>代表某個目錄。mv不會自動為您建立目錄。

相關內容