他のディレクトリではなく、ディレクトリ内のすべての隠しファイルを一覧表示しようとしています。これを行うには、lsとgrepのみを使用します。
ls -a | egrep "^\."
これは私がこれまで持っていたものですが、問題は、私がそれを望まないときに隠しディレクトリも一覧表示することです。
次に、完全に個別に、隠しディレクトリを一覧表示します。
リストのみ隠しファイル:
ls -ap | grep -v / | egrep "^\."
filesはディレクトリではないすべてのものであることに注意してください。これはファイルではありません "Linuxのすべてがファイルです";)
隠しディレクトリのみをリストするには:
ls -ap | egrep "^\..*/$"
コメント:
ls -ap
は、隠しディレクトリを含む現在のディレクトリ内のすべてをリストし、ディレクトリの末尾に/
を置きます。grep -v /
はgrep /
の結果を反転するため、ディレクトリは含まれません。"^\..*/$"
は、.
で始まり/
で終わるすべてと一致します。.
および..
ディレクトリを除外する場合は、ls
に対して-A
の代わりに-a
オプションを使用できます。正規表現を使用したい場合は、"^\.[^.]+/$"
の代わりに"^\..*/$"
を使用できます。楽しんで!
を含む現在のディレクトリ内の隠しファイルとディレクトリを一覧表示するにはそして..:
echo .*
現在のディレクトリとそのサブディレクトリにある隠しファイルと隠しディレクトリを再帰的に一覧表示するには:
find . -name '.*'
結果をファイルに保存する場合は、リダイレクトを使用します。
find . -name '.*' >output-file.txt
zsh
に切り替え(まだ行っていない場合)、実行します
ls .*(^/)
括弧内の部分はいわゆるグロブ修飾子と呼ばれ、ディレクトリ以外をすべて選択することを意味します。
プレーンファイルのみに関心があり、ディレクトリだけでなく他の特殊ファイル(名前付きパイプなど)も除外したい場合は、
ls .*(.)
このコマンドを試してください:
find -maxdepth 1 -type f -name '.*' | sed 's/^..//'
これにより、現在のディレクトリ(-maxdepth 1)内のファイル(-type f)のみが「。」で始まり、sedコマンドはすべての行の「./」を削除します。