Qual è la differenza tra "ls * .py" e "ls * py"?


1

Questo accade in cygwin (CYGWIN_NT-5.1 MYPC 1.7.5 (0.225 / 5/3) 2010-04-12 19:07 i686 Cygwin)

Primo comando, ls *.py non mostra nulla

$ ls *.py
ls: cannot access *.py: No such file or directory

Primo comando, ls *.py gira nella stessa posizione, mostra quanto segue

$ 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

Questi sono i file in una cherrypy sottodirectory

Non ho fatto l'alias ls in ogni modo (correndo /usr/bin/ls dà gli stessi risultati)

Quindi, la domanda, perché la differenza? Non me lo aspetto ls eseguire in modo ricorsivo senza il -R bandiera

Risposte:


6

Questo perché funziona ls con un nome di cartella elencherà il contenuto della cartella (s) che corrisponde al tuo argomento.

utilizzando * come jolly, tutte le cartelle che terminano in py avrebbero i loro contenuti elencati, come ad esempio cherrypy, crappy, bumpy eccetera.

Se più cartelle corrispondono ai criteri, mostrerà anche i nomi delle cartelle:

[~/ex]$touch bumpy/1
[~/ex]$touch sloppy/2
[~/ex]$touch cherrypy/3 cherrypy/4 cherrypy/5
[~/ex]$ls *py
bumpy:
1

cherrypy:
3  4  5

sloppy:
2
[~/ex]$

Non hai cartelle o file direttamente nella tua cartella corrente che è finita in .py quando hai eseguito il primo comando, quindi l'output.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.