相关疑难解决方法(0)

跟踪 Linux 上磁盘空间的去向?

在管理 Linux 系统时,我经常发现自己在分区变满后很难找到罪魁祸首。我通常使用du / | sort -nr但在大型文件系统上这需要很长时间才能返回任何结果。

此外,这通常可以成功地突出显示最严重的罪犯,但我经常发现自己 在更微妙的情况下诉诸于du没有sort,然后不得不浏览输出。

我更喜欢依赖于标准 Linux 命令的命令行解决方案,因为我必须管理相当多的系统并且安装新软件很麻烦(尤其是在磁盘空间不足时!)

command-line partition disk-usage command

669
推荐指数
16
解决办法
74万
查看次数

将字节数转换为人类 KiB MiB 等的标准工具;喜欢 du, ls1

是否有标准工具可以将字节的整数计数转换为人类可读的最大可能单位大小计数,同时将数值保持在 1.00 和 1023.99 之间?

我有我自己的 bash/awk 脚本,但我正在寻找一个标准工具,它可以在许多/大多数发行版中找到......更普遍可用的东西,理想情况下有简单的命令行参数,和/或可以接受管道输入。

以下是我正在寻找的输出类型的一些示例。

    1    Byt  
  173.00 KiB  
   46.57 MiB  
    1.84 GiB  
   29.23 GiB  
  265.72 GiB  
    1.63 TiB  
Run Code Online (Sandbox Code Playgroud)

这是bytes-human脚本(用于上述输出)

awk -v pfix="$1" -v sfix="$2" 'BEGIN { 
      split( "Byt KiB MiB GiB TiB PiB", unit )
      uix = uct = length( unit )
      for( i=1; i<=uct; i++ ) val[i] = (2**(10*(i-1)))-1
   }{ if( int($1) == 0 ) uix = 1; else while( $1 < val[uix]+1 ) uix--
      num = $1 …
Run Code Online (Sandbox Code Playgroud)

utilities text-processing units

131
推荐指数
6
解决办法
6万
查看次数

在 du 中显示人类可读的文件大小

我正在使用此命令来确定哪个目录正在占用我的磁盘。

du -sk * | sort -n
Run Code Online (Sandbox Code Playgroud)

如何获得人类可读du的文件大小结果表?我已经检查过man,它所拥有的只是-k将字节结果转换为千字节结果的标志。我需要千兆字节的结果

osx disk-usage

11
推荐指数
1
解决办法
1万
查看次数

人类可读的文件大小与 find 的 printf

我正在编写一个简单的辅助函数,以我想要的格式显示特定文件夹:

find . -maxdepth 1 -not -name "." -printf '[%TY-%Tm-%Td]\t%s\t%f\n' | sort -n
Run Code Online (Sandbox Code Playgroud)

但是我想以更好的格式显示文件大小。我找到了这个答案,我用它来创建一个名为 .bash 的 bash 函数hr。

user@host:~$ hr 12345
12M
Run Code Online (Sandbox Code Playgroud)

我尝试在find通话中使用它,如下所示:

find . -maxdepth 1 -not -name "." -printf '[%TY-%Tm-%Td]\t'$(hr %s)'\t%f\n' | sort -n
Run Code Online (Sandbox Code Playgroud)

但它仍然继续显示完整的文件大小。我应该如何修改它以使其按预期工作?

bash find printf

8
推荐指数
1
解决办法
9500
查看次数

根据 1 列对文件进行排序

可能重复:
如何按大小对 du 输出进行排序?

我有一个从输出生成的文本文件

du --max-depth 1 -h > sizeOfHomeFolder.txt
Run Code Online (Sandbox Code Playgroud)

它的内容是这样的格式:

$ cat sizeOfHomeFolder.txt  | head
776K    ./Expensemanager
8.0K    ./workspace
4.0M    ./mysql-tutorial
3.6M    ./temp
26M ./Desktop
4.0K    ./Ubuntu One
4.0K    ./Photos
4.0K    ./Public
Run Code Online (Sandbox Code Playgroud)

我需要根据第一列即大小对这个文件进行排序。

如何使用sort或sed或任何其他常见的 Unix 实用程序执行此操作?

sort

2
推荐指数
1
解决办法
3083
查看次数