在LINUX上工作时,可能会出现需要传输一组文件或整个目录的情况。在这种情况下,您可能想知道特定目录或文件集消耗的磁盘空间。在处理LINUX时,有一个命令行实用程序也可以使用 杜 命令,该命令估计并显示 磁盘空间 被文件使用。
简单地说 杜 命令行实用程序帮助您找出一组文件或目录的磁盘使用情况。
下面是du命令的语法:
//syntax of du command du [OPTION]... [FILE]... or du [OPTION]... --files0-from=F
哪里 选项 指与du命令和 文件 指你想知道磁盘空间占用情况的文件名。
使用du命令
假设有两个文件 kt。txt 和 pt。txt 如果你想知道这些文件的磁盘使用情况,那么你可以简单地使用 杜 命令,并将文件名指定为:
//using du command $du kt.txt pt.txt 8 kt.txt 4 pt.txt /* the first column displayed the file's disk usage */
如上图所示 杜 显示相应文件使用的磁盘空间。
现在,显示的值实际上是第一个可用值的单位 大小 从…起 ––块大小 ,以及 大块头 , 块大小 和 块状大小 环境变量,如果不是这种格式,则单位默认为1024字节(如果设置了POSIXLY_CORRECT,则为512字节)。
不要对上面的段落感到困惑。我们可以简单地使用 -h 选项强制du以人类可读的格式生成输出。
du命令的选项
- -a、 –所有选项: 此选项为所有文件(而不仅仅是目录)生成计数作为输出。
- –外观尺寸选项: 这会打印文件的表观大小,而不是磁盘使用量,由于文件中存在漏洞(稀疏)、内部碎片和间接块,磁盘使用量可能会更大,但实际上表观大小较小。
- -c、 –总选项: 这显示了一个总数。
- -B、 ––块大小=大小选项: 此选项会使大小按大小缩放,如 -BM 以兆字节为单位打印大小。
- -b、 –字节选项: 这个选项相当于 ––表观尺寸––块尺寸=1 .
- -D、 –取消引用参数选项: 此选项仅用于取消引用命令行上列出的符号链接。
- -H选项: 此选项等同于上述选项 -D 选项
- –-files0 from=F选项: 这用于总结的磁盘使用情况 努尔- 文件F中指定的终止文件名,如果文件F为“-”,则从标准输入中读取名称。
- -h、 –人类可读选项: 这将以人类可读的格式打印尺寸 即 在舍入值中使用缩写,如 1K 这是du最常用的选项。
- –si选项: 这与 -h 选项,但使用1000而不是1024的幂。
- -k选项: 相当于 -块大小=1K .
- -l、 –计数链接选项: 如果文件不完整,则此计数会增加很多倍 硬链接 .
- -m选项: 这相当于 ––块大小=1M .
- -五十、 –取消引用选项: 此选项取消对所有符号链接的引用。
- -P、 –无解引用选项: 此选项告诉du不要遵循默认设置的任何符号链接。
- -0,–空选项: 每个输出行的结尾都是 0字节 而不是一条新线。
- -S、 –单独的目录选项: 这会导致输出不包括 子目录 .
- -s、 –总结选项: 此选项将允许仅显示每个参数的总计。
- -x、 –一个文件系统选项: 这将导致du跳过不同文件系统上的目录。
- -十、 –-exclude from=文件选项: 排除与文件中给定的任何模式匹配的文件。
- –-exclude=模式选项: 它将排除符合模式的文件。
- -d、 –最大深度=N选项: 仅当目录(或文件,带–all)低于命令行参数N级或更少时,才打印目录(或文件,带–all)的总计;–最大深度=0与–汇总相同。
- –时间选项: 这将显示最后一次修改目录或其任何子目录中任何文件的时间。
- –-time=WORD选项: 这将时间显示为文字,而不是修改时间: 时间、访问、使用、ctime 或 地位 .
- ––时间样式=样式选项: 这显示了使用样式的时间: 全iso,长iso,iso, 或 +格式 (格式的解释与日期的格式类似)。
- –帮助选项: 这将显示一条帮助消息并退出。
- -版本选项: 这将显示版本信息并退出。
使用du命令的示例
1.使用-h选项: 如上所述,-h选项用于以人类可读的格式生成输出。
//using -h with du $du -h kt.txt pt.txt 8.0K kt.txt 4.0K pt.txt /*now the output is in human readable format i.e in Kilobytes */
2.使用du显示目录的磁盘使用情况: 现在,如果你要传递一个目录名 卡尔蒂克 作为du的参数,它将显示输入目录的磁盘使用信息 卡尔蒂克 及其子目录(如果有)。
/*using du to display disk usage of a directory and its sub-directories */ $du kartik 4 kartik/thakral 24 kartik
在目录的磁盘使用信息上方 卡尔蒂克 及其子目录 塔克拉尔 显示。
3.使用-a选项: 现在,如上所示,只有目录的磁盘使用信息 卡尔蒂克 及其子目录 塔克拉尔 但如果您还想知道目录下所有文件的磁盘使用信息,该怎么办 卡尔蒂克 .为此,请使用 -a 选项
//using -a with du $du -a kartik 8 kartik/kt.txt 4 kartik/pt.txt 4 kartik/pranjal.png 4 kartik/thakral.png 4 kartik/thakral 24 kartik /*so with -a option used all the files (under directory kartik) disk usage info is displayed along with the thakral sub-directory */
4.使用-c选项: 此选项显示总计,如图所示。
//using -c with du $du -c -h kt.txt pt.txt 8.0K kt.txt 4.0K pt.txt 12.0K total /* at the end total is displayed for the disk usage */
5.使用–-time选项: 此选项用于显示du输出中的上次修改时间。
//using --time with du $du --time kt.txt 4 2017-11-18 16:00 kt.txt /*so the last modification date and time gets displayed when --time option is used */
6.使用–-exclude=PATTERN选项: 在上面的一个例子中,所有与磁盘使用相关的文件都显示在目录中 卡尔蒂克 .现在,假设你想知道。仅限txt文件,不包括。png文件,在这种情况下排除 .png 你可以使用这个选项。
//using --exclude=PATTERN with du $du --exclude=*.png -a kartik 8 kartik/kt.txt 4 kartik/pt.txt 4 kartik/thakral 24 kartik /*so, in this case .png files info are excluded from the output */
7.使用–-max depth=N选项: 现在,这个选项允许您将du的输出限制在目录的特定深度。 假设您有一个名为 朋友 下面有子目录 朋友/大学 和 朋友/学校 在子目录college下还有一个子目录 朋友/大学/再见 然后你可以使用 –最大深度=N 本例中的选项为:
//using --max-depth=N with du $du --max-depth=0 FRIENDS 24 FRIENDS /* in this case you restricted du output only to top=level directory */
现在,对于大学和学校的子目录,您可以使用:
$du --max-depth=1 FRIENDS 16 FRIENDS/college 8 FRIENDS/school 24 FRIENDS
现在,对于朋友/大学/告别,你可以使用 –最大深度=2 作为:
$du --max-depth=2 FRIENDS 4 FRIENDS/college/farewell 16 FRIENDS/college 8 FRIENDS/school 24 FRIENDS /*so this is how N in --max-depth=N is used for levels */
8.使用–-files0 from=F选项: 如上所述,这用于总结文件F中指定的以NUL结尾的文件名的磁盘使用情况,如果文件F为“-”,则从标准输入中读取名称。 让我们使用此选项从STDIN获取输入:
//using --files0from=F with du $pwd /home/kartik $ls kt.txt pt.txt thakral /*now use this option for taking input from STDIN */ $du --files0-from=- kt.txt8 kt.txt pt.txt4 pt.txt /* in this case after giving kt.txt as a input from STDIN there is need to press Ctrl+D twice then the output is shown and same for pt.txt or any other file name given from STDIN */
du命令的应用
- 当文件从一台计算机传输到另一台计算机时,它可以用来找出特定目录占用的磁盘空间。
- 杜 命令可以与 管 到 过滤器 A. 滤器 通常是一个以有意义的方式转换数据的专门程序。
- 还有其他一些方式,比如 df 命令来查找磁盘使用情况,但它们都缺少 杜 能够显示单个目录和文件的磁盘使用情况。
- 它还可以用来快速找出目录中存在的子目录的数量。
将du与过滤器一起使用的示例
让我们举一个简单的例子,将du与sort命令一起使用,这样du生成的输出将按照文件大小的递增顺序进行排序。
$du -a kartik 8 kartik/kt.txt 4 kartik/pt.txt 4 kartik/pranjal.png 4 kartik/thakral.png 4 kartik/thakral 24 kartik /*now using du to produce sorted output */ $du -a kartik | sort -n 4 kartik/pt.txt 4 kartik/pranjal.png 4 kartik/thakral.png 4 kartik/thakral 8 kartik/kt.txt 24 kartik /* now the output displayed is sorted according to the size */
这个 分类 命令和 -n 使用的选项会导致以数字顺序列出输出,并首先显示最小大小的文件。 通过这种方式,可以使用du根据大小排列输出。
就这些 杜 命令