这是一个简单的问题。我试图将当前目录中以axis-2开头、以.jar结尾的所有文件复制到目标目录~/MyDirectory中。
我第一次尝试
cp '^axis2.*jar..。但是当我尝试这样做时,cp输出一个“没有这样的文件或目录”错误消息。我不确定我是否可以在cp中使用正则表达式。我也有一段时间没有使用正则表达式了,我的语法可能会关闭。有没有人对如何处理这件事有任何建议? ~/MyDirectory..。但是当我尝试这样做时,cp输出一个“没有这样的文件或目录”错误消息。我不确定我是否可以在cp中使用正则表达式。我也有一段时间没有使用正则表达式了,我的语法可能会关闭。
有没有人对如何处理这件事有任何建议?
发布于 2011-11-09 05:14:04
Linux/UNIX系统上的shell使用全球模式,而不是正则表达式。因此,如果要匹配以axis2开头并以.jar结尾的文件名,可以使用:
cp axis2*.jar /destination/directory发布于 2011-11-09 08:11:36
如果您有GNU find和GNU cp可用,您可以使用正则表达式,如下所示:
find . -maxdepth 1 -regextype posix-basic -regex '.*/axis2[^/]*jar如果无论是glob模式还是bash扩展glob模式套件,您都需要这样做,这是非常方便的。 \
-exec cp -t ~/MyDirectory {} +如果无论是glob模式还是bash扩展glob模式套件,您都需要这样做,这是非常方便的。
发布于 2018-04-06 16:50:27
我非常喜欢rename perl脚本的regex语法(由Robin和Larry编写),例如:
rename "s/OldFile/NewFile/" OldFile*OldFile.c和OldFile.h分别重命名为NewFile.c和NewFile.h。
我只想要与复制命令完全相同的东西:
copy "s/OldFile/NewFile/" OldFile*
因此,我复制了该脚本,并将重命名语句更改为通过File::Copy复制。看哪!具有perl-regex语法的复制命令:jcward/副本。
https://unix.stackexchange.com/questions/24242
复制相似问题