请不要给我一个利用 grep 或 ls 或 sed 等其他命令的解决方案。
我想知道cp
用正则表达式是否可以做到这一点。
cp(1) 本身没有“正则表达式”支持;您所依赖的功能可能是 Bash 中的路径名扩展(通配符)。检查 bash(1) 手册页以查找 extglob 语法,如下所示:
shopt -s extglob
cp !(abc*) destination/
cp -t elsewhere [^a]* a[^b]* ab[^c]*
请注意:
bash
not执行cp
,并且abc*
好吧,您并没有拒绝 find ,所以您可以这样做:
find . -maxdepth 1 -type f ! -name "abc*" -exec cp '{}' dest/ \;