ls .*
隠しディレクトリの内容が印刷されるのはなぜですか?隠しファイルを印刷したいのですが、今はわかります。 隠しファイルのみを表示解決策ですが、ディレクトリの内容が表示される理由をまだ知りたいです。追加の入れ子になったディレクトリの内容は表示されません。
ls .*
以下は私のホームディレクトリのいくつかの出力です。
.bash_history
.bash_profile
.bashrc
.coin_history
.emacs
.gitconfig
.gitignore_global
.grasp_jss
.ssh:
config github_rsa.pub id_rsa.pub known_hosts.old
github_rsa id_rsa known_hosts lambda.pem
.vim:
colors ftdetect syntax
このマシンはRHELを実行しています。 Mac OSXでも同様の動作が観察されます。
ベストアンサー1
短い答え:シェル全体の拡張。
シェルは入力を受け取り、その.*
部分を渡す前に拡張するので、ls
基本的には次のようになります。
$ ls .bash_history .bash_profile .bashrc .coin_history .emacs ...
したがって、各項目がリストされます。ディレクトリエントリを表示すると、期待どおりにそのディレクトリの内容が一覧表示されますls
。作業ディレクトリのファイル/ディレクトリのみを表示するには、-d
次のオプションを使用しますls
。
$ ls -d .*
この-d
オプションは、ls
「コンテンツではないディレクトリ自体を一覧表示します」(ls
マンページから取得)を指示します。