linux中如何动态查找文件并将其复制到目录中

linux中如何动态查找文件并将其复制到目录中

尝试找到这些文件并将它们复制到目录(test_dir);

abc-1.0.zip
kncb-1.0.zip
jenk-1.1.zip

我想动态地找到所有这些文件并将它们复制到一个目录中。我已尝试以下命令,但它仅复制最后一个文件(jenk*.zip),需要一个命令将上述所有文件复制到提到的目录(test_dir);

find / -type f -name "*abc*.zip" -o -name "*kncb*.zip" -o -name "*jenk*.zip" ! -path '*/test_dir/*.jar' -exec cp -ar {} ./test_dir \;

答案1

您需要( )围绕您的 OR 构造应用。

可以在手册页中找到解释:

请注意,当隐式指定(例如,两个测试之间没有显式运算符)或显式指定时,-a 的优先级高于 -o。这意味着找到 . -name afile -o -name bfile -print 永远不会打印文件。

例子:

touch afile bfile

没有( )

find . -name afile -o -name bfile -print
./bfile

-name bfile和之间有一个隐含的 -a -print

find . -name afile -o -name bfile -a -print
./bfile

( )结果正如预期的那样:

find . \( -name afile -o -name bfile \) -print
./afile
./bfile 

你的隐式-a位于-o -name "*jenk*.zip"和之间! -path '*/test_dir/*.jar'

相关内容