如何在Linux中找到最大和最小的目录和文件
时间:2020-03-21 11:44:26 来源:igfitidea点击:
如果我们关注磁盘空间,我们必须知道哪些目录和文件正在分发更多空间,这是最小的。
这将为我们提供一个想法,摆脱占用驱动器空间的不必要的目录和文件。
此外,我们还可以将它们备份或者存档到外部驱动器中以释放一些空间。
在这篇简短的教程中,我们将讨论如何在Unix的操作系统中找到最大和最小的目录和文件。
在Linux中查找最大和最小的目录和文件
首先让我们了解如何在Linux系统中找到最大的目录和文件。
1.在Linux/Unix中找到最大的目录和文件
据我所知,没有一个命令可以找到最大的目录和文件。
但是,我们可以使用一些命令组合来实现这项任务。
要查找当前工作目录中最大的十目录和文件,刚刚运行:
$sudo du -a | sort -n -r | head -n 10
示例输出:
324793508 . 175393112 ./Soft_Backup 114384256 ./Soft_Backup/VHD's 76665704 ./Personal 58237276 ./Soft_Backup/OS Images 48053708 ./Soft_Backup/OS Images/Linux 32940784 ./Personal/Tutors 28189472 ./Downloads 26067640 ./Personal/Study 23741692 ./VirtualBox VMs
其中:
- du:磁盘使用命令估计文件空间使用情况
- -a:显示所有目录和文件
- sort:排序文本文件的行
- -n:根据字符串数值进行比较
- -R:逆转比较结果
- head:输出文件的第一部分
- -N 10:打印前10个
要以人类可读格式(以KB,MB,GB等)查看上述结果,只需添加参数"H",如下所示。
$sudo du -ah | sort -n -r | head -n 10
如上所述,我们在当前工作目录中列出了所有文件和目录及其子目录。
要显示特定目录的最大目录和文件,例如/var,运行:
$sudo du /var -a | sort -n -r | head -n 10
示例输出:
9317388 /var 5159660 /var/cache 5129476 /var/cache/pacman 5129472 /var/cache/pacman/pkg 2304368 /var/lib 1979572 /var/lib/docker 1976628 /var/lib/docker/devicemapper 1976532 /var/lib/docker/devicemapper/devicemapper 1974172 /var/lib/docker/devicemapper/devicemapper/data 1853276 /var/log
要以人类可读格式显示上述结果,请添加"-h"参数:
$sudo du -ah /var | sort -n -r | head -n 10
让我们在当前工作目录及其子目录中找到最大的文件:
$sudo find -printf '%s %p\n'| sort -nr | head -10
示例输出:
14621343744 ./Soft_Backup/VHD's/openSUSE 42.1 Leap Desktop/openSUSE 42.1 Leap Desktop.vdi 13767896472 ./Downloads/3.0.6/eos-amd64-amd64/en/eos-eos3.0-amd64-amd64.161109-081728.en.img.xz.part 12878610432 ./VirtualBox VMs/Ubuntu 16.04 LTS Desktop/Ubuntu 16.04 LTS Desktop.vdi 12834570240 ./Soft_Backup/VHD's/Ubuntu 16.04 LTS Desktop/Ubuntu 16.04 LTS Desktop.vdi 9360637952 ./VirtualBox VMs/Fedora 24 Desktop/Fedora 24 Desktop.vdi 7785676800 ./Soft_Backup/VHD's/Ubuntu 14.04 LTS desktop/Ubuntu 14.04 LTS desktop.vdi 7523532800 ./Soft_Backup/VHD's/Fedora 23 desktop/Fedora 23 desktop.vdi 7223640064 ./Soft_Backup/VHD's/FreeBSD 10.3 MATE desktop/FreeBSD 10.3 MATE desktop.vdi 6510608384 ./Soft_Backup/VHD's/Windows 7/Windows 7.vdi 6323896320 ./Soft_Backup/VHD's/Fedora 23 desktop/.goutputstream-UT19IY
此外,我们可以通过在上面的命令中添加"-type f"标志来跳过目录并仅显示文件:
$sudo find -type f -printf '%s %p\n'| sort -nr | head -10
示例输出:
14621343744 ./Soft_Backup/VHD's/openSUSE 42.1 Leap Desktop/openSUSE 42.1 Leap Desktop.vdi 13767896472 ./Downloads/3.0.6/eos-amd64-amd64/en/eos-eos3.0-amd64-amd64.161109-081728.en.img.xz.part 12878610432 ./VirtualBox VMs/Ubuntu 16.04 LTS Desktop/Ubuntu 16.04 LTS Desktop.vdi 12834570240 ./Soft_Backup/VHD's/Ubuntu 16.04 LTS Desktop/Ubuntu 16.04 LTS Desktop.vdi 9360637952 ./VirtualBox VMs/Fedora 24 Desktop/Fedora 24 Desktop.vdi 7785676800 ./Soft_Backup/VHD's/Ubuntu 14.04 LTS desktop/Ubuntu 14.04 LTS desktop.vdi 7523532800 ./Soft_Backup/VHD's/Fedora 23 desktop/Fedora 23 desktop.vdi 7223640064 ./Soft_Backup/VHD's/FreeBSD 10.3 MATE desktop/FreeBSD 10.3 MATE desktop.vdi 6510608384 ./Soft_Backup/VHD's/Windows 7/Windows 7.vdi 6323896320 ./Soft_Backup/VHD's/Fedora 23 desktop/.goutputstream-UT19IY
要查找特定目录(例如/var)中的最大文件及其子目录只提到目录的路径,如下所示:
$sudo find /var -printf '%s %p\n'| sort -nr | head -10
我们现在有关于如何找到最大文件和目录的基本思想。
最小的文件和目录如何?
这也很容易找出。
2.在Linux/Unix中查找最小的目录和文件
要在当前工作目录中查看前十个最小目录,请运行:
$du -S . | sort -n | head -10
示例输出:
4 ./.adobe 4 ./.adobe/Flash_Player 4 ./.adobe/Flash_Player/AssetCache 4 ./.alkasir/log 4 ./.alkasir/torpt 4 ./.alkasir/torpt/ptc 4 ./.bundle/cache 4 ./.bundle/cache/compact_index 4 ./.cache/chromium/Default 4 ./.cache/deepin
要在特定位置查看最小的目录,例如/var,运行:
$sudo du -S /var | sort -n | head -10
要在当前工作目录中查看前十个最小文件,请运行:
$ls -lSr | head -10
示例输出:
total 116 -rw-r--r-- 1 sk users 62 Nov 5 12:15 Inter.txt drwxr-xr-x 2 sk users 4096 Jan 9 2015 Wallpapers drwxr-xr-x 5 sk users 4096 Nov 25 17:24 VirtualBox VMs drwxr-xr-x 2 sk users 4096 Jan 11 2015 Videos drwxr-xr-x 6 sk users 4096 Oct 24 17:32 usbkill drwxr-xr-x 2 sk users 4096 Jan 11 2015 Templates drwxr-xr-x 5 sk users 4096 Jan 4 2015 Soft_Backup drwxr-xr-x 2 sk users 4096 Oct 25 12:32 snap drwxr-xr-x 2 sk users 4096 Jan 11 2015 Public
同样,仅在特定目录中查看前十个最小文件,例如/var,刚刚运行:
$sudo ls -lSr /var | head -10