回答:
ブレースの拡張を活用します。
du -b maybehere*/{*,.[^.],.??*}
または代わりに
du -b maybehere*/{,.[^.],..?}*
この背後にあるロジックはおそらく明らかではないので、ここに説明があります。
*
隠されていないすべてのファイルに一致.[^.]
名前が単一のドットで始まり、その後にドットが続かないファイルに一致します。最初の形式では2文字のファイル名のみです。.??*
少なくとも3文字の長さの隠しファイルに一致します..?*
上記と同じですが、2番目の文字はドットでなければなりません全体のポイントは、現在および親ディレクトリ(.
および..
)へのハードリンクを除外することですが、通常のファイルはすべて、それぞれが1回だけカウントされるように含めます。
たとえば、最も簡単なのは
du -b maybehere*/{.,}*
これは、リストにドット.
と「なし」(なし,
と終了}
)が含まれているため、すべての隠しファイル(ドットで始まる)とすべての非表示でないファイル(「なし」で始まる)が一致することを意味します。問題は、これもとに一致することで.
あり..
、これはおそらくあなたが望むものではないため、どういうわけか除外する必要があります。
ブレースの拡張についての最後の言葉。
中括弧の展開は、より少ない文字を書くことにより、コマンドラインにより多くのファイル/文字列/その他を含めることができるメカニズムです。構文は{word1,word2,...}
、つまり、で始まり{
で終わるコンマ区切りの文字列のリストです}
。bash
マニュアルには、非常に基本的であると同時に非常に一般的な使用例が記載されています。
$ echo a{b,c,d}e
abe ace ade
{ }
私は何の用途がありますか:(それについての詳細情報を取得する方向を教えてもらえますか
man bash
、「ブレース拡張」の章を見てください。
.??*
一致.a
し.b
ませ.[^.]*
ん、... 一致しません..foo
。
.foo
との両方に一致.[^.]*
し.??*
ます。あなたが欲しい{.[!.],..?,}*
。
すでにGNU固有の構文(-b
)を使用しているため:
du -abd1 maybehere*/
そうすればdu
、maybehere*
ディレクトリ内のファイルがリストされます(ドットファイルは除外されません)。-d1
ディスク使用量のレポートを1レベル下に制限します(での非ディレクトリを含む-a
)。
それ以外の場合、グロブに隠しファイル(.
およびを除く..
)を含めるには、各シェルに独自の構文があります。
zsh
:
du -b maybehere*/*(D)
ksh93
:
(FIGNORE='@(.|..)'; du -b maybehere*/*)
bash
:
(shopt -s dotglob; du -b maybehere*/*)
tcsh
:
(set globdot; du -b maybehere*/*)
yash
:
(set -o dot-glob; du -b maybehere*/*)
しかし、それは含まれて用心.
し、..
その結果、それらを含むシステム上でreaddir()
、それはほとんど使用可能になりました。
隠しディレクトリをリストするか、隠しディレクトリを操作したい場合は、コスタスが言ったように使用できます
du -b maybehere*/.*
これにより、隠しファイルとディレクトリを操作できます。隠しディレクトリだけが必要な場合は、それを指定できます
du -b maybehere*/.*/
maybehere*/.*
やmaybehere*/*
のための隠されたのと別の非隠さ
du -b
は、非表示と非表示の両方を取得します。
maybehere*/.*
上記のすべてに追加します