如何将所有以字母 [ho] 开头的 .c 文件复制到目录 h-oFiles

如何将所有以字母 [ho] 开头的 .c 文件复制到目录 h-oFiles

我正在尝试完成这一个命令,这就是我尝试的:

sudo cp /hw2/ladsrc/.c[a-g] /hw2/a-gFiles

我在这里做错了什么?

答案1

我假设以下几点:

  1. 问题的标题是正确的
  2. 问题中的命令仅仅是一个示例,而不是您实际输入的内容

这是复制文件的最简单方法(正如其他人指出的那样):

cp /hw2/ladsrc/[h-o]*.c /hw2/h-oFiles

这是进行复制的更好方法。很有可能有很多文件符合您的条件。如果是这样,xargs 是一个更好的解决方案。此外,文件名中可能还有空格或特殊字符。请尝试以下方法(通过 -n 选项一次复制 3 个文件,这比常规复制更快):

find /hw2/ladsrc/ -name "[h-o]*.c" | xargs -n 3 -I {} cp "{}" /hw2/h-oFiles

[注]:我不确定为什么要使用 sudo。问题描述中没有说明。如果您是普通用户,则无需使用 sudo。如果您不拥有要复制的文件,但拥有 sudo 权限,则需要使用 sudo 进行复制。在这种情况下,您需要使用 -p 标志和 cp(复制)来保留文件所有权和文件权限。如果不是,则 root 用户将拥有文件的所有权。

答案2

也许你想写

 sudo cp /hw2/ladsrc/[a-g]*.c /hw2/a-gFiles

相关内容