2016-09-14 110 views
0

我有幾個父文件夾,如GJ1,GJ2等。這些文件夾中的每一個都包含三個圖像,如GJ11_F.jpg,GJ11_P.jpg。我只需要顯示所有GJ11_F.jpg文件,其中包括它們各自的父目錄如何從父目錄中找到並複製子目錄中的文件linux

find . -type f -name "*_F.jpg" | xargs cp -t ~/home/ubuntu/ 

,但上面的命令僅複製* _F.jpg文件,而不是各自的父目錄GJ1。

xargs不是我應該嘗試的嗎?

我也曾嘗試 -

find . -name "*_F.jpg" -exec sh -c 'rsync -a "${0%/*}" ~/home/ubuntu/' {} \; 

回答

0

一個簡單的方法是使用tar將處理自動目錄:

find . -type f -name "*_F.jpg" -print0 | tar c --null -T - | tar xC ~/home/ubuntu/ 

這裏還有一個while循環的解決方案:

find . -type f -name "*_F.jpg" -print0 | 
    while IFS= read -r -d '' file; do 
     mkdir -p ~/home/ubuntu/"$(dirname -- "$file")" 
     cp -ai -- "$file" ~/home/ubuntu/"$file" 
    done 
+0

謝謝!該腳本工作正常,但不是通過管道連接到焦油的find命令。 – user1691915

相關問題