Nic*_*tyn 17 cp regular-expression
这是一个简单的问题。我试图将当前目录中以“axis-2”开头并以“.jar”结尾的所有文件复制到目标目录中,假设它是 ~/MyDirectory。我的第一个想法是尝试
cp '^axis2.*jar$' ~/MyDirectory
Run Code Online (Sandbox Code Playgroud)
但这不起作用。我什至不确定我可以在 cp 中使用正则表达式。我也有一段时间没有真正使用过正则表达式,而且我的语法可能完全没有用。当我尝试这个 cp 时,只输出“没有这样的文件或目录”错误消息。有没有人对如何解决这个问题有任何建议?谢谢!
Ric*_*rri 19
UNIX shell 使用glob patterns,而不是正则表达式。因此,如果要匹配以 开头axis2
和结尾的文件名.jar
,请使用:
cp axis2*.jar /destination/directory
Run Code Online (Sandbox Code Playgroud)
enz*_*tib 10
如果您有 GNUfind
和 GNUcp
可用,您可以使用正则表达式,如以下命令:
find . -maxdepth 1 -regextype posix-basic -regex '.*/axis2[^/]*jar$' \
-exec cp -t ~/MyDirectory {} +
Run Code Online (Sandbox Code Playgroud)
如果 glob 模式和 bash 扩展的 glob 模式都不适合您的需要,这会很方便。