web-dev-qa-db-ja.com

隠しディレクトリのみを表示し、隠しファイルを個別に見つける方法

他のディレクトリではなく、ディレクトリ内のすべての隠しファイルを一覧表示しようとしています。これを行うには、lsとgrepのみを使用します。

ls -a | egrep  "^\."

これは私がこれまで持っていたものですが、問題は、私がそれを望まないときに隠しディレクトリも一覧表示することです。

次に、完全に個別に、隠しディレクトリを一覧表示します。

4
Rikg09

リストのみ隠しファイル

ls -ap | grep -v / | egrep "^\."  

filesはディレクトリではないすべてのものであることに注意してください。これはファイルではありません "Linuxのすべてがファイルです";)

隠しディレクトリのみをリストするには:

ls -ap | egrep "^\..*/$"  

コメント:

  • ls -apは、隠しディレクトリを含む現在のディレクトリ内のすべてをリストし、ディレクトリの末尾に/を置きます。
  • grep -v /grep /の結果を反転するため、ディレクトリは含まれません。
  • "^\..*/$"は、.で始まり/で終わるすべてと一致します。
  • 2番目の部分の結果から.および..ディレクトリを除外する場合は、lsに対して-Aの代わりに-aオプションを使用できます。正規表現を使用したい場合は、"^\.[^.]+/$"の代わりに"^\..*/$"を使用できます。

楽しんで!

6
Mohammad

を含む現在のディレクトリ内の隠しファイルとディレクトリを一覧表示するにはそして..:

echo .*

現在のディレクトリとそのサブディレクトリにある隠しファイルと隠しディレクトリを再帰的に一覧表示するには:

find . -name '.*'

結果をファイルに保存する場合は、リダイレクトを使用します。

find . -name '.*' >output-file.txt
4
Ijaz Ahmad Khan

zshに切り替え(まだ行っていない場合)、実行します

ls .*(^/)

括弧内の部分はいわゆるグロブ修飾子と呼ばれ、ディレクトリ以外をすべて選択することを意味します。

プレーンファイルのみに関心があり、ディレクトリだけでなく他の特殊ファイル(名前付きパイプなど)も除外したい場合は、

ls .*(.)
2
jimmij

このコマンドを試してください:

find -maxdepth 1 -type f -name '.*' | sed 's/^..//'

これにより、現在のディレクトリ(-maxdepth 1)内のファイル(-type f)のみが「。」で始まり、sedコマンドはすべての行の「./」を削除します。

0
geruetzel