Cp

如何遞歸複製“只是文件”

  • March 26, 2017

假設我有這個文件夾 0 和其中的子文件夾和文件的結構。

  folder0
     subfolder01
       file011
       file012
     subfolder02
       file021
     file01
     file02

我想將主文件夾中的所有文件複製folder0到其他地方,這樣所有文件都在一個目錄中?我怎樣才能做到這一點?我用了

cp --recursive folder0address targetfolderaddress

但子文件夾複製到目標文件夾。我只想要目錄和子目錄中的所有文件而不是文件夾。我的意思是目標文件夾中的以下內容:

targetfolder
 file011
 file012
 file021
 file01
 file02

使用find

find folder0 -type f -exec cp {} targetfolder \;

使用 GNU coreutils,您可以更有效地做到這一點:

find folder0 -type f -exec cp -t targetfolder {} +

前一個版本cp針對每個複制的文件執行,而後者cp只執行一次。

使用 zsh,感謝**遞歸 globglob 限定符.僅匹配正常文件:

cp -p folder0/**/*(.) targetfolder

引用自:https://unix.stackexchange.com/questions/351687