2

请不要给我一个利用 grep 或 ls 或 sed 等其他命令的解决方案。

我想知道cp用正则表达式是否可以做到这一点。

4

3 回答 3

5

cp(1) 本身没有“正则表达式”支持;您所依赖的功能可能是 Bash 中的路径名扩展(通配符)。检查 bash(1) 手册页以查找 extglob 语法,如下所示:

shopt -s extglob
cp !(abc*) destination/
于 2013-09-01T10:16:06.733 回答
3
cp -t elsewhere [^a]* a[^b]* ab[^c]*

请注意:

  • 完全不涉及正则表达式
  • 而是涉及 shell globbing,但是
  • bashnot执行cp,并且
  • 是一个手反转abc*
于 2013-09-01T10:12:53.280 回答
0

好吧,您并没有拒绝 find ,所以您可以这样做:

find . -maxdepth 1 -type f ! -name "abc*" -exec cp '{}' dest/ \;
于 2013-09-01T10:11:26.577 回答