如何在父目录linux的子目录中查找和复制文件

时间:2016-09-14 11:02:17

标签: linux find exec xargs cp

我有几个父文件夹,如GJ1,GJ2等。每个文件夹都包含三个图像,如 GJ11_F.jpg ,GJ11_P.jpg。我只需要显示所有 GJ11_F.jpg 文件,包括各自的目录。

    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/' {} \;

1 个答案:

答案 0 :(得分: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