ls および find コマンドはディレクトリーを除外します。

ls および find コマンドはディレクトリーを除外します。

私はこれをしたい:

ls -altrhS 'find / -type d \( ! -name tmp -prune \) -size +10000k 2> /dev/null -print' | egrep -v 'ibd|MYD|MYI'  

そのため、特定のサイズ(tmpディレクトリを除く)のファイルをこの形式で一覧表示したいと思います。私が読んだ内容はすべて完了する必要があると述べていますが、うまくいかず、一時ディレクトリの内容も引き続きインポートされます。

答え1

この試み:

find / -not -path "*/tmp/*" -size +10000k -ls 2> /dev/null | \
sort -n -k7 | egrep -v 'ibd|MYD|MYI'

説明する:

  • find / -not -path "*/tmp/*" -size +10000k -ls/tmp/: パスが 10000k より大きいパスで始まらないすべての項目を検索し、出力をfind独自の形式で印刷します。ls -dils
  • sort -n -k7:あなたの質問で述べたように、ls -altrhS出力をファイルサイズで昇順にソートしたいとします。フィールド7の出力はファイルサイズls -dilsです。find
  • egrep -v 'ibd|MYD|MYI'egrepそして、これらの文字列をフィルタリングするあなたの部分

編集する:

人間が読めるファイルサイズの形式が必要な場合は、ls次のコマンドを使用します。

find / -type f -not -path "*/tmp/*" -size +10000k -printf "%s %p\n" 2> /dev/null | sort -n -k1 | cut -d' ' -f2- | xargs -L 1 ls -lh

関連情報