Bash脚本查找并复制具有多个扩展名的文件,包括具有2或3个扩展名的文件

时间:2016-02-05 07:32:11

标签: linux bash

我有一个bash脚本来查找文件并将文件复制到另一个扩展名

find . -name '*.so' -name '*.lib' -exec cp{} $destination \

上述脚本只会将所有.so文件复制到$destination并忽略* .lib。此外,我在目录中有更多的文件,有2或3个扩展名,比如 test.so.55 , test1.so.bkk等等。

如何调整上述代码,以便将所有'*.so''*.lib''*.so.*'文件复制到$destination。 此外,我尝试过使用,

Try1:

find . -name '*.so' -name '*.lib' -name '*.so.*' -exec cp{} $destination \

和偶数

Try2

find . -name '*.so' -exec cp{} $destination \
find . -name '*.so.*' -exec cp{} $destination \
find . -name '*.lib' -exec cp{} $destination \

但上面的代码只会复制试用版1和*.so and *.lib文件中的* .so,并且不会复制*.so.*,即{2}中的*.so.55 , *.so.bkk

我有成千上万的文件,如何调整我的代码以便它可以复制所有文件 *.so , *.lib and *.so.*到目的地?

1 个答案:

答案 0 :(得分:1)

在模式匹配中使用OR子句:

find . \( -name '*.so' -o -name '*.lib' -o -name '*.so.*' \) -exec cp{} $destination \;