「du」と「tree」のメリットを組み合わせ

「du」と「tree」のメリットを組み合わせ

「du」の率直さと「tree」のインデントを組み合わせることはできないかと思います。ディレクトリサイズのリストが必要な場合:

du -hx -d2

...2つのレベルの深さを示し、すべてのサイズの要約は正直ですが、サブディレクトリのインデントはありません。一方:

tree --du -shaC -L 2

...圧入と色は大丈夫ですが、報告された寸法が偽です。実際の寸法を取得するには、次の手順を実行する必要があります。

tree --du -shaC

...つまり、「ツリー」がディレクトリ構造全体を表示できるようにした場合にのみ、実際のサイズを取得できます。実際に表示するサブディレクトリのレベルがどれくらいにかかわらず、常に正確なサイズの要約を持つことができるようにしたいです。私はしばしばそうします:

tree -du -shaC | grep "\[01;34m"

...ディレクトリを除くすべての項目を整え、素敵にインデントします。ただし、要約なしで表示を特定の数値レベルに制限する簡単な方法はありません。どのような方法がありますか?たぶん私は正しいスイッチを逃したかもしれません...

答え1

お支払いも可能NCDU: http://dev.yorhel.nl/ncdu

そのページには他の「類似プロジェクト」もリストされています。

gt5 - ncduと非常に似ていますが、アプローチは異なります。

tdu - 別のncursesベースの小型ディスク使用量可視化ユーティリティです。

TreeSize - ツリービューを使用するGTK。

Baobab - GTK、円グラフ、ツリービュー、ツリーマップ操作。 GNOMEに付属しています。

GdMap - ツリーマップが表示されるGTK。

Filelight - KDE、円グラフを使用。

QDirStat - KDE、ツリーマップ表示。

QDiskUsage - 円グラフを使用するQt。

xdiskusage - ツリーマップ表示を含むFLTK。

fsv - 3D可視化。

Philesight - FilelightのWebベースのレプリカです。

答え2

カラーコードを取得するためにgrepを使用する必要はありません。-dオプションはですlist directories only

これはあなたが望むことを行うようです:

$ tree --du -d -shaC | grep -Ev '(  *[^ ]* ){2}\['
.
├── [  18]  dir1
├── [  30]  dir2
├── [ 205]  junk
│   ├── [  18]  dir1
│   ├── [  30]  dir2
│   └── [  76]  dir3
├── [ 119]  merge
└── [  20]  stuff

 4.4K used in 10 directories

このgrepコマンドは、2つの空白(1つ以上の空白、空白ではなく空白、空白が続きます)、およびを含むすべての文字を削除します[

深さを1に設定するには、{}中括弧内のバインディングの数を{1}代わりに変更します{2}。同様に、深さを3に設定するにはに変更します{3}

これを次のシェル関数に変換できます。

mytreedu() {
  local depth=''

  while getopts "L:" opt ; do
      case "$opt" in
          L) depth="$OPTARG" ;;
      esac
  done

  shift "$((OPTIND-1))"

  if [ -z "$depth" ] ; then
      tree --du -d -shaC "$@"
  else   
      local PATTERN='(  *[^ ]* ){'"$depth"'}\['
      tree --du -d -shaC "$@" | grep -Ev "$PATTERN"
  fi
}

これは、コマンドラインからオプションとその引数(存在する場合)をgetopts「盗む」ために使用されます。コマンドラインにオプションがなくても大丈夫です。-Ltree-L n

他のすべてのオプションとパラメータはtreeコマンドに渡されます。

このlocal PATTERN=...行は実際には必要ありません。私はこれを1行に収め、改行を避けるためにこれを行いますU&L。正規表現はすぐに実行でき、おそらくそうする必要がありますtree | grep ...

次のように実行します。

mytreedu 

または

mytreedu -L 2 /path/to/dir/

答え3

あなたはそれを使用することができます義務

ここに画像の説明を入力してください。

  • LS_COLORS 環境変数に基づくカラー出力です。
  • ファイルシステムツリーの表示
  • 小さなファイルを集計する機能
  • ファイルまたはディレクトリを除外する機能
  • さまざまなディレクトリを比較する機能
  • 高速でRustで書かれました

答え4

バージョン

$ tree --version;
# tree v2.1.1 © 1996 - 2023 by Steve Baker, Thomas Moore, Francesc Rocher,
# Florian Sesser, Kyosuke Tokoro

注文する

# -x - Stay on the current file-system only...
# -a - All files are printed... (those beginning with a dot `.')...
# -p - Print the file type and permissions for each file...
# -u - Print the username, or UID...
# -g - Print the group name, or GID...
# -h - Print the size of each file but in a more human readable way...
# -F - Append a `/' for directories, a `=' for socket files...
# -D - Print the date of the last modification time...
# --du - For each directory report its size as the accumulation of sizes...
# --dirsfirst - List directories before files...
# --charset - Set the character set to use when outputting...
# --sort - Sort the output by type instead of name...
# --timefmt - Prints... and formats the date according to the format string...
#
tree -xapughFD \
    --du --dirsfirst \
    --charset='ascii' --sort='size' --timefmt='%Y-%m-%d_%H-%M-%S' -- \
    . \
    | grep -P '^(?:\|\s{3}|\s{4}){0,1}(?:`|\|)\-\-';

grep正規表現では{0,1}(正直なところのようなもの?)を「深く」使うことができます。たとえば、{0,3}現在のディレクトリと最大3つのディレクトリを配置します。

はい

$ pwd -P;
/home/user
$ tree -xahpugFD --du --charset=ascii --dirsfirst --sort=size --timefmt='%Y-%m-%d_%H-%M-%S' -- '/usr/share/vlc' | grep -P '^(?:\|\s{3}|\s{4}){0,1}(?:`|\|)\-\-';
|-- [drwxr-xr-x root     root     520K 2022-10-23_09-19-24]  lua/
|   `-- [drwxr-xr-x root     root     516K 2022-10-23_09-19-24]  http/
|-- [drwxr-xr-x root     root     210K 2022-10-23_09-20-57]  skins2/
|   |-- [drwxr-xr-x root     root     4.1K 2022-10-23_09-20-57]  fonts/
|   |-- [-rw-r--r-- root     root     160K 2022-03-13_10-00-10]  default.vlt
|   |-- [-rw-r--r-- root     root      31K 2022-03-13_10-00-10]  winamp2.xml
|   |-- [-rw-r--r-- root     root      10K 2022-03-13_10-00-10]  skin.dtd
|   `-- [-rw-r--r-- root     root      167 2022-03-13_10-00-10]  skin.catalog
|-- [drwxr-xr-x root     root     6.1K 2022-10-23_09-19-24]  utils/
|   |-- [-rwxr-xr-x root     root      873 2022-03-13_10-00-10]  gnome-vlc-default.sh*
|   |-- [-rwxr-xr-x root     root      620 2022-03-13_10-00-10]  audio-vlc-default.sh*
|   `-- [-rwxr-xr-x root     root      620 2022-03-13_10-00-10]  video-vlc-default.sh*
`-- [-rw-r--r-- root     root      71K 2022-03-13_10-00-10]  vlc.ico

関連情報