这发生在 cygwin 中(CYGWIN_NT-5.1 MYPC 1.7.5(0.225/5/3) 2010-04-12 19:07 i686 Cygwin)
第一个命令,ls *.py
什么都没显示
$ ls *.py
ls: cannot access *.py: No such file or directory
第一个命令 ls *.py
在相同位置运行,显示以下内容
$ ls *py
LICENSE.txt _cpchecker.pyc _cperror.pyc _cpserver.py _cptree.pyc favicon.ico
__init__.py _cpconfig.py _cplogging.py _cpserver.pyc _cpwsgi.py lib
__init__.pyc _cpconfig.pyc _cplogging.pyc _cpthreadinglocal.py _cpwsgi.pyc process
_cpcgifs.py _cpdispatch.py _cpmodpy.py _cptools.py _cpwsgi_server.py scaffold
_cpcgifs.pyc _cpdispatch.pyc _cprequest.py _cptools.pyc _cpwsgi_server.pyc wsgiserver
_cpchecker.py _cperror.py _cprequest.pyc _cptree.py cherryd
这些是子目录 cherrypy 中的文件
我没有ls
以任何方式使用别名(运行/usr/bin/ls
结果相同)
那么,问题是,为什么会有差异?我不希望在没有标志的ls
情况下递归运行-R
答案1
这是因为ls
使用文件夹名称运行将列出与您的参数匹配的文件夹的内容。
使用*
通配符,任何以 结尾的文件夹py
都会列出其内容,例如cherrypy, crappy, bumpy
等。
如果有多个文件夹符合条件,它还会显示文件夹名称:
[~/ex]$触摸颠簸/1 [~/ex]$touch sloppy/2 [〜/ ex] $ touch cherrypy / 3 cherrypy / 4 cherrypy / 5 [~/ex]$ls *py 起疙瘩的: 1 cherrypy: 3 4 5 马虎: 2 [〜/ ex] $
当您运行第一个命令时,当前文件夹中没有任何文件夹或文件.py
,因此输出。