首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在终端中执行CP命令时使用通配符的问题

问在终端中执行CP命令时使用通配符的问题
EN

Ask Ubuntu用户
提问于 2016-02-08 18:45:14
回答 1查看 3.3K关注 0票数 1

我是新来的,尝试学习终端指挥。今天,我遇到了cp通配符命令选项的一些问题。我在终端上写了这个命令

代码语言:javascript
复制
cp Downloads/[:alnum:]  test/

在这里,Downloads是我想要将字母数字字符文件复制到我的test目录的目录。但当我运行这个命令时,我发现:

代码语言:javascript
复制
cannot stat ‘Downloads/[:alnum:]’: No such file or directory

我想知道如何为cp命令使用上述通配符类。以及如何使用上述通配符命令。

通配符是

代码语言:javascript
复制
 * 
? 
[characters]
[!characters]
[[:classes:]]

常用的类是

代码语言:javascript
复制
[:alnum:]-> Match any Alphanumeric Character
[:alpha:] -> Match any Alphabetic Character
[:digit:] -> Match any nummeral 
[:lower:] -> Matches any lowercase letter
[:upper:] -> Matches any Uppercase letter

如何使用这些通配符及其类?

EN

回答 1

Ask Ubuntu用户

发布于 2016-02-08 19:40:50

cp本身不支持任何通配符。通配符和模式的扩展是由shell完成的,默认情况下是bash。

在任何情况下,字符类都要在[]中指定--这就排除了已经包围它们的[]。就像这样:

代码语言:javascript
复制
cp Downloads/[[:alnum:]] test/

但是,[[:alnum:]]只匹配一个字母数字字符。要匹配所有仅包含字母数字字符的文件名,只能使用已经列出的通配符。要获得更强大的过滤功能,请查看find命令:

代码语言:javascript
复制
find . -regextype posix-extended -maxdepth 1 -regex '.*/[[:alnum:]]*'

在bash中,您可以使用扩展球体:

代码语言:javascript
复制
shopt -s extglob
cp Downloads/*([[:alnum:]]) test/
票数 3
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/731319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档