ls -ad */ は隠しディレクトリを表示しません。

ls -ad */ は隠しディレクトリを表示しません。

pwd私のホームディレクトリです。ls */ -dディレクトリを表示します。

~$ ls */ -d
Blog/  Desktop/  Documents/  Downloads/  Music/  Pictures/  Public/  Templates/  Videos/

ls -a隠しディレクトリとファイルの両方を表示します。隠しディレクトリ.cache-.localなど

$ ls -a
.                        .cache      .gnupg       .xsession-errors.old
..                       .config     .gtkrc-2.0   Templates
.bash_history            Desktop     .gtkrc-xfce  Pictures      .themes
.bash_logout             .linuxmint   .pki          Videos
.bashrc                  Documents   .local       .profile      .viminfo
Blog                     Downloads   .mozilla     Public        .Xauthority
Music        .ssh          .xsession-errors

ただし、実行するとls -ad */非表示のディレクトリは表示されません。誰でも説明できますか?

$ ls -ad */ 
Blog/  Desktop/  Documents/  Downloads/  Music/  Pictures/  Public/  Templates/  Videos/

ベストアンサー1

を実行すると、ls -aコマンドラインにファイル名がないためls(図を参照ls)、どのファイル名を一覧表示する必要があるかを独自に識別します。指定された後に「隠された」ファイル表示が含まれます-a

ls -d */andを実行すると、ls -ad */シェルが展開され、表示される*/ファイル名のリストを提供しますls*ファイル名パターンの開始が一致しません。.そのため、隠しファイルは含まれません。と*/組み合わせて使用​​すると、ここでは何の効果もありません。-d-a

隠しディレクトリを表示するには、そのディレクトリを明示的に一覧表示できますls -d -- */ .*/。一部のシェルでは、隠しファイルの一致を要求する場合があります*。たとえば、Bash では次のように使用します (この場合は と がshopt -s dotglob含まれていないため、 と同様に動作します )。...ls -A

また、--ファイル名がで始まる場合は、オプションと見なされないようにオプションの終わりを表示することを忘れていました-*/目次も含まれています。とディレクトリシンボリックリンク。を使用すると、各ファイルに末尾を追加せずにディレクトリ(隠しディレクトリを含む)のみを一覧表示zshできます。または、ディレクトリへのシンボリックリンクが本当に必要な場合。ls -d -- *(D/)D/*(D-/)

おすすめ記事