duはシンボリックリンクをスキップします。

duはシンボリックリンクをスキップします。

私のシステムのデフォルト動作はdu正しいデフォルト動作ではありません。

lsフォルダを表示すると、次/dataの内容が表示されます(重要でないアイテムを削除します)。

ghs
ghsb -> ghs
hope
rssf -> roper
roper

各フォルダには、番号と呼ばれるフォルダセットがあります。14以下を使用して、名前付きのすべてのフォルダの合計サイズを取得したいと思います。

du -s /data/*/14

私は見ました...

161176 /data/ghs/14
161176 /data/ghsb/14
8 /data/hope/14
681564 /data/rssf/14
681564 /data/roper/14

私が望むもの:

161176 /data/ghs/14
8 /data/hope/14
681564 /data/roper/14

私はシンボリックリンクを見たくありません。-L、、-Dなどを試してみました-S。私はいつもシンボリックリンクを取得します。削除する方法はありますか?

ベストアンサー1

これはduシンボリックリンクをチェックするのではなく、シンボリックリンクをチェックすることです。これがあなたの殻です。

*シェル球です。コマンドが実行される前にシェルによって拡張されます。したがって、実際に実行されているコマンドは次のようになります。

du -s /data/ghs/14 /data/ghsb/14 /data/hope/14 /data/rssf/14 /data/roper/14

シェルがbashの場合、シンボリックリンクを拡張しないように指示する方法はありません。ただし、find代わりに(GNUバージョン)を使用できます。

find /data -mindepth 2 -maxdepth 2 -type d -name 14 -exec du -s {} +

おすすめ記事