如何按文件大小对查找命令的结果进行排序,并显示文件大小(以 MB 为单位)?
How do I sort result of find command by file size, and display the file sizes (in MB)?
作为一个辅助问题,如果知道如何使输出看起来也很整洁就好了(bash 是否有某种形式的字符串格式?)无论如何,我有一个 find .命令返回超过一定大小的所有文件,我想按降序对这些结果进行排序并将它们通过管道传递给邮件程序。我有邮件部分,但我不确定如何对它们进行排序并以有组织的方式显示文件大小。感谢您的帮助!
这将找到所有大于 1000 字节的文件并打印出文件名和大小(以字节为单位):
$ find tmp/ -size +1000c -printf '%p %s\n' | sort -k2 -n
这会给你这样的输出:
tmp/gitwork/integration/.git/hooks/pre-rebase.sample 4951
tmp/gitwork/repo1/.git/hooks/pre-rebase.sample 4951
tmp/gitwork/repo2/.git/hooks/pre-rebase.sample 4951
tmp/gitwork/upstream1/hooks/pre-rebase.sample 4951
tmp/gitwork/upstream2/hooks/pre-rebase.sample 4951
tmp/constraints.dot 7035
tmp/constraints.svg 41657
tmp/so31567373/KBFI.xml 375557
tmp/overflow.tar 399360
如果你想做这个 "pretty",你可以在那个 printf
指令中添加一些字段宽度说明符:
$ find tmp/ -size +1000c -printf '%-60p %s\n' | sort -k2 -n
哪个会让你:
tmp/gitwork/integration/.git/hooks/pre-rebase.sample 4951
tmp/gitwork/repo1/.git/hooks/pre-rebase.sample 4951
tmp/gitwork/repo2/.git/hooks/pre-rebase.sample 4951
tmp/gitwork/upstream1/hooks/pre-rebase.sample 4951
tmp/gitwork/upstream2/hooks/pre-rebase.sample 4951
tmp/constraints.dot 7035
tmp/constraints.svg 41657
tmp/so31567373/KBFI.xml 375557
tmp/overflow.tar 399360
如果您对 "pretty" 的定义需要更复杂的东西,您可能需要研究通过 awk
输出的管道。
作为一个辅助问题,如果知道如何使输出看起来也很整洁就好了(bash 是否有某种形式的字符串格式?)无论如何,我有一个 find .命令返回超过一定大小的所有文件,我想按降序对这些结果进行排序并将它们通过管道传递给邮件程序。我有邮件部分,但我不确定如何对它们进行排序并以有组织的方式显示文件大小。感谢您的帮助!
这将找到所有大于 1000 字节的文件并打印出文件名和大小(以字节为单位):
$ find tmp/ -size +1000c -printf '%p %s\n' | sort -k2 -n
这会给你这样的输出:
tmp/gitwork/integration/.git/hooks/pre-rebase.sample 4951
tmp/gitwork/repo1/.git/hooks/pre-rebase.sample 4951
tmp/gitwork/repo2/.git/hooks/pre-rebase.sample 4951
tmp/gitwork/upstream1/hooks/pre-rebase.sample 4951
tmp/gitwork/upstream2/hooks/pre-rebase.sample 4951
tmp/constraints.dot 7035
tmp/constraints.svg 41657
tmp/so31567373/KBFI.xml 375557
tmp/overflow.tar 399360
如果你想做这个 "pretty",你可以在那个 printf
指令中添加一些字段宽度说明符:
$ find tmp/ -size +1000c -printf '%-60p %s\n' | sort -k2 -n
哪个会让你:
tmp/gitwork/integration/.git/hooks/pre-rebase.sample 4951
tmp/gitwork/repo1/.git/hooks/pre-rebase.sample 4951
tmp/gitwork/repo2/.git/hooks/pre-rebase.sample 4951
tmp/gitwork/upstream1/hooks/pre-rebase.sample 4951
tmp/gitwork/upstream2/hooks/pre-rebase.sample 4951
tmp/constraints.dot 7035
tmp/constraints.svg 41657
tmp/so31567373/KBFI.xml 375557
tmp/overflow.tar 399360
如果您对 "pretty" 的定义需要更复杂的东西,您可能需要研究通过 awk
输出的管道。