我有一个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.*
到目的地?
答案 0 :(得分:1)
在模式匹配中使用OR
子句:
find . \( -name '*.so' -o -name '*.lib' -o -name '*.so.*' \) -exec cp{} $destination \;