2016-04-20 140 views
1

我有以下文件夾結構:從多個文件夾中的文件複製到一個

>Folder1 
    >>date1 
    >>>Empty 
     1.jpg 
     2.jpg 
    >>>Occupied 
     x.jpg 
     y.jpg 
    >>date2 
    >>>Empty 
     1.jpg 
     2.jpg 
    >>>Occupied 
     x.jpg 
     y.jpg 

我需要的所有文件

  • 在空文件夾

    複製到其他單個文件夾

  • 已佔用文件夾中的其他單個文件夾

我試過$ cp Folder1/**/Empty/*.jpg ~/destination_folder/但它給我錯誤:「參數列表太長」。我該怎麼做呢?

+1

您將要將具有相同名稱(例如1.jpg)的文件移動到同一文件夾。你想如何解決同名的衝突? – Victor

+0

實際上我只是查了一下,他們沒有相同的名字,我只是把它作爲一個例子。 – ddd

回答

0

您可以使用find

find Folder1 -wholename '*Empty*.jpg' -exec cp -v {} ~/destination_folder + 

+-exec選項年底將調用cp多次需要避免參數列表太長錯誤,但儘可能少。這意味着它將始終以最大數量的參數調用cp

如果您find應該不支持+語法,你仍然可以使用:

find Folder1 -wholename '*Empty*.jpg' -exec cp -v {} ~/destination_folder \; 

它將調用cp每個源文件一次。雖然這仍然有效,但需要更多時間。

+1

完美工作,謝謝! – ddd

相關問題