Nou*_*sfi 2 ls wildcards files
pwd : ../bin
在 bin 下我有一个名为datafiles
.
使用元字符和ls -lL
命令(带有小写和大写 L)列出datafiles
目录下包含点的所有文件名,点.
后的任何位置都带有字母“f”或“u”。
我试过: ls -lL datafiles *.*f*u
ls -lL datafiles .[f*u]
Run Code Online (Sandbox Code Playgroud)
谢谢你的回答。不幸的是,没有一个解决方案像我想要的那样工作。
通过澄清问题,/bin/datafiles/file.backup
是目录的根。从/bin
目录中,我使用的命令ls -lL datafiles
后跟元字符。
我正在寻找file.backup
有一个点并后跟f
or u
,而不是直接跟在f
or u
(点之后的任何地方),并且不以f
or结尾的u
。
这将在数据目录中查找包含点后跟 f 或 u 但不以 f 或 u 结尾的文件:
ls -lL datafiles/*.*[fu]*[^fu]
Run Code Online (Sandbox Code Playgroud)
你写了“f or u”。要将其写在 glob 中,请使用[fu]
. 还要坚持在f
oru
前面加上一个点,请尝试:
ls -lL .*[fu]* *.*[fu]*
Run Code Online (Sandbox Code Playgroud)
上面的第一个 glob.*[fu]*
扩展为以点开头的文件(这意味着它们通常是“隐藏的”)。第二个, *.*[fu]*
, 扩展为名称中某处有一个点但不以点开头的文件。
隐藏文件通常用作各种程序的配置文件。如果您不想看到它们,并且通常不想看到它们,那么省略第一个 glob 并简单地使用:
ls -lL *.*[fu]*
Run Code Online (Sandbox Code Playgroud)
*.*f*u
扩展为一个文件名,该文件名包含一个点,后跟(不一定是直接)一个,f
并以一个u
. 换句话说,这个 glob 要求f
和u
都出现在文件名中,并且它们按f
then的顺序出现u
。
通常,*
表示零个或多个任何字符。作为一种特殊情况,以上不匹配以点开头的文件,因为按照惯例,这些文件是“隐藏的”。
.[f*u]
扩展为一个文件名,该文件名由一个点组成,后面紧跟其中一个字符f
, *
, or u
(之后没有其他字符)。因为星号在方括号内,所以它失去了零个或多个字符的通常含义,变成了文字*
。
归档时间: |
|
查看次数: |
29905 次 |
最近记录: |