如何使用find命令

时间:2016-09-14 13:21:57

标签: bash unix

我在基目录下有多个子目录。如果子目录有x.jar,我需要复制另一个路径中可用的几个jar文件。

我使用下面的命令来查找x.jar,然后我尝试复制jar文件。

find . -type f -name x.jar | xargs cp /home/sampath.anisetti/tmp/*.jar

我得到cp: target ./test3/x.jar不是目录。

请建议。

注意:如果子目录没有x.jar,则该目录在复制时需要跳过。

1 个答案:

答案 0 :(得分:2)

这个怎么样:

find . -type f -name x.jar -print0 |
    while IFS= read -r -d'' file; do
        cp -- /home/sampath.anisetti/tmp/*.jar "$(dirname -- "$file")"
    done

它将找到所有名为x.jar的文件,然后对于每个此类文件,它将找到该文件所在的目录,并复制所有其他*.jar文件。