ls -al .functions*
-rw-r--r-- 1 root root 471040 Mar 2 10:01 .functions.php.swo
-rw-r--r-- 1 root root 438272 Mar 2 09:57 .functions.php.swp
Run Code Online (Sandbox Code Playgroud)
*
可以匹配.php.swo
,.php.swp
为什么*
不能匹配.functions.php
?
ls -al *.swo
ls: cannot access '*.swo': No such file or directory
ls -al *swo
ls: cannot access '*swo': No such file or directory
Run Code Online (Sandbox Code Playgroud)
小智 11
作为Shaido 答案的扩展,我想解释一下为什么该-a
选项在这里不起作用:
该ls
命令也没有通配符处理。命令行解释器执行以下步骤:
如果您键入命令行“ mycommand *.c
”,命令行解释器将首先用*.c
匹配文件列表替换通配符字符串“ ”,然后执行生成的命令行:
mycommand a.c file.c test.c
Run Code Online (Sandbox Code Playgroud)
命令行解释器对所有命令的工作方式相同,因此它无法知道-a
在ls
命令的情况下意味着“包括隐藏文件” (而-a
对于其他命令具有完全不同的含义)...
Sha*_*ido 10
默认情况下,以点开头的文件在文件列表中是隐藏的。匹配这些文件的最简单方法是在表达式的开头放一个点。但是,这将仅匹配以.
.
ls -al .*.swo
Run Code Online (Sandbox Code Playgroud)
另一种方法是dotglob
在运行命令之前设置,然后.
将包含以开头的文件。
shopt -s dotglob
Run Code Online (Sandbox Code Playgroud)
将其添加到您~/.bashrc
的默认设置中。
请注意,设置dotglob
可能会导致uninteded结果使用bash shell时,因为两个.
(当前目录)和..
(父目录),使用时会出现*
。使用dotglob
set,永远不要尝试使用rm -R *
.
归档时间: |
|
查看次数: |
1322 次 |
最近记录: |