Linux中du命令参数的用法

Linux中du命令参数的用法,第1张

Linux中du命令参数的用法

du是Linux下系统命令,统计目录(或文件)所占磁盘空间的大小。那么du有什么参数呢?这些参数的用法是什么,下面一起来看看吧!

Du(Disk Usage)命令功能说明:统计目录(或文件)所占磁盘空间的大小。

语法:du [-abcDhHklmsSx] [-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>] [--max-depth=<目录层数>][--help][--version][目录或文件]

常用参数:

-a或-all 为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。

-b或-bytes 显示目录或文件大小时,以byte为单位。

-c或–total 除了显示目录或文件的大小外,同时也显示所有目录或文件的总和。

-D或–dereference-args 显示指定符号连接的源文件大小。

-h或–human-readable 以K,M,G为单位,提高信息的可读性。

-H或–si 与-h参数相同,但是K,M,G是以1000为换算单位,而不是以1024为换算单位。

-k或–kilobytes 以1024 bytes为单位。

-l或–count-links 重复计算硬件连接的文件。

-L<符号连接>或–dereference<符号连接>显示选项中所指定符号连接的源文件大小。

-m或–megabytes 以1MB为单位。

-s或–summarize 仅显示总计,即当前目录的大小。

-S或–separate-dirs 显示每个目录的大小时,并不含其子目录的大小。

-x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。

-X<文件>或–exclude-from=<文件>在<文件>指定目录或文件。

–exclude=<目录或文件>略过指定的目录或文件。

–max-depth=<目录层数>超过指定层数的目录后,予以忽略。

–help 显示帮助。

–version 显示版本信息。

Linux中的du命令使用示例:

1>要显示一个目录树及其每个子树的磁盘使用情况

du /home/linux

这在/home/linux目录及其每个子目录中显示了磁盘块数。

2>要通过以1024字节为单位显示一个目录树及其每个子树的磁盘使用情况

du -k /home/linux

这在/home/linux目录及其每个子目录中显示了 1024 字节磁盘块数。

3>以MB为单位显示一个目录树及其每个子树的.磁盘使用情况

du -m /home/linux

这在/home/linux目录及其每个子目录中显示了 MB 磁盘块数。

4>以GB为单位显示一个目录树及其每个子树的磁盘使用情况

du -g /home/linux

这在/home/linux目录及其每个子目录中显示了 GB 磁盘块数。

5>查看当前目录下所有目录以及子目录的大小:

du -h .

“.”代表当前目录下。也可以换成一个明确的路径

-h表示用K、M、G的人性化形式显示

6>查看当前目录下user目录的大小,并不想看其他目录以及其子目录:

du -sh user

-s表示总结的意思,即只列出一个总结的值

du -h –max-depth=0 user

–max-depth=n表示只深入到第n层目录,此处设置为0,即表示不深入到子目录。

7>列出user目录及其子目录下所有目录和文件的大小:

du -ah user

-a表示包括目录和文件

8>列出当前目录中的目录名不包括xyz字符串的目录的大小:

du -h –exclude=’*xyz*’

9>想在一个屏幕下列出更多的关于user目录及子目录大小的信息:

du -0h user

-0(杠零)表示每列出一个目录的信息,不换行,而是直接输出下一个目录的信息。

10>只显示一个目录树的全部磁盘使用情况

du -s /home/linux

所有命令的参数都是使用空格分隔的,例如 ls -l 。在这里ls即为命令名, -l 为此命令的参数,在 ls 与 -l 之间有一个空格,但是在 -l 内部不能有空格。

由于Linux继承于Unix,而Unix *** 作系统在当初设计的时候,键盘并不可靠,而且敲键盘比较费劲(比如容易卡住),因此大部分命令都非常简短,一般是完整的英文单词去掉元音字母(aeiou)后的缩写,这是一个历史问题。

整个 *** 作系统的磁盘都被划分为很多个目录(directory)或称文件夹(folder),还有文件(file)。每个目录下还可以有子目录(sub direcotory)与文件,这样就形成了一个树状结构,树根为 / ,被称为根目录(root directory)。

任何时候 ,你都有一个 当前目录 (Working Directory),你所有的 *** 作都是相对于当前目录做出的,以当前目录为基准的目录名或者文件名叫做相对目录。例如若你的当前目录是/home/alex,在/home/alex目录下有一个叫Public的子目录,还有一个叫log.txt的文件,则Public与log.txt就是相对目录名与相对文件名。

每个目录与文件都有一个全路径(full path)名,这个全路径以/开头,遍历整个目录,直到最终的目录名或者文件名为止。例如在Linux中,/下有etc、home、usr、lib等子目录,而home目录下有alex目录,alex目录下有Public目录。则在这里Public的全路径名就是 /home/alex/Public ,注意在这里必须大小写一致。

当然也有可能在其它的名叫Public的目录或者文件,但是它们的全路径肯定是不一样的。就像在中国有一个叫Alex的人,在美国也有一个叫Alex的人,他们可以分别称为中国的Alex与美国的Alex,这就是他们的全路径 )。全路径又叫绝对路径(absolute path)。

在Linux里,每个用户都有一个家目录(home directory),一般情况下用户的家目录就是/home目录下相应的用户名,例如alex用户的家目录就是/home/alex。

大部分文件都有扩展名(extension name),扩展名即为文件名最后一个点号(.)后面的文字,扩展名一般都表示了文件的类型。例如在log.txt这个文件名中,txt是扩展名,表示这个文件是一个文本文件(TeXT file),而文本文件一般都是可以直接查看内容的。而在house.1.jpg这个文件名中,其扩展名为jpg,表示这个文件是一个JPG格式的图形文件,而图形文件一般都是需要使用图形软件打开才能看到其内容的。

pwd 是Pring Working Directory的缩写,此命令的作用是打印(print)当前的(working)目录(directory)的全路径名。

当你打开终端或者切换目录之后,你最好运行一下 pwd 命令,确认当前的目录是不是你想要切换的目录。

pwd 命令一般不需要参数。

ls 是LiSt的缩写,此命令的作用是列举目录下的文件与子目录。

当你不带参数运行 ls 命令时,此命令将列举出当前目录下的文件与子目录的名称。

当你加上-l参数运行 ls 命令时,此命令将列举出当前目录下的文件与子目录的名称,以及它们的修改时间、大小等信息。

你也可以使用 ls 命令列举其它目录下的文件与子目录的名称,例如,运行 ls / 即可列举出根目录下的文件与子目录名,运行 ls -l / 即可列举出根目录下的文件与子目录名,以及它们的修改时间、大小等信息。

cd 是Change Directory的缩写,此命令的作用是切换当前的工作目录。

例如,运行 cd /home/alex 将把当前目录切换为 /home/alex 。当然,cd后面的参数也可以是相对目录。例如若当前目录为 /home/alex ,而 /home/alex 目录下有一个目录叫Public,则运行 cd Public 则会将当前目录变为 /home/alex/Public 。

如果cd命令后面不接任何参数,则将把当前目录设置为用户的家目录。

cp 是CoPy的缩写,此命令的作用是复制文件或者文件夹。

例如,运行 cp 1.txt 2.txt 将把当前目录下的 1.txt 文件复制成 2.txt 文件。运行 cp 1.txt /tmp/2.txt 将把当前目录下的 1.txt 复制成 /tmp/2.txt 文件,运行 cp 1.txt /home/alex/ 将把 1.txt 文件复制到 /home/alex/ 目录下。

rm 是ReMove的缩写,此命令的作用是删除文件或者文件夹。

例如,运行 rm 2.txt 将删除当前目录下的 2.txt 文件,运行 rm /tmp/2.txt 将删除 /tmp/2.txt 文件。

你也可以使用 rm 来删除目录,此时需要带上-R参数(recursive,即递归的意思),例如 rm -R /tmp/abc 将删除整个 /tmp/abc 目录。

删除时一般都会询问你让你确认是否要删除,如果你不需要被提问确认,可以加上-f参数,例如 rm -f /tmp/1.txt 。

mv 是MoVe的缩写,此命令的作用是移动文件或者文件夹,或说是为文件或者文件夹改名。注意,一旦移动成功,则原来的文件或者文件夹就不存在了。

例如,运行 mv 1.txt 2.txt 将把当前目录下的 1.txt 改名为 2.txt ,运行 mv 1.txt /tmp/2.txt 将把当前目录下的 1.txt 移动成为 /tmp/2.txt 文件。

mkdir 是MaKe DIRectory的缩写,此命令的作用是创建目录。

例如 mkdir abc 将在当前目录下创建一个名为 abc 的目录, mkdir /tmp/xyz123 将在 /tmp 目录下创建一个名为 xyz123 的目录。

mkdir 可以带-p参数,这样即可同时创建多层目录,例如 mkdir -p a/b/c/123 将在当前目录下创建a目录,在a目录下创建b目录,在b目录下创建c目录,在c目录下创建123目录。

在Linux下还有几个特殊的目录,它们分别是:

有一个特殊的符号表示文件名匹配,即 * 。例如 cp *.txt /tmp/ 将把当前目录下的以 .txt 结尾的文件名都复制到 /tmp/ 目录下, ls a*.txt 将列举出当前目录下所有以 a 开头,以 .txt 结尾的文件名与目录, rm /tmp/1*log 将删除 /tmp 目录下所有文件名以 1 开头,以 log 结尾的文件。

所有以 . 开头的文件与目录都表示是隐藏文件 / 目录,例如 .vimrc ,例如 .. ,在 ls 时一般是看不到这些文件与目录的,如果想要看到,需要使用 ls 的 -a 参数,例如 ls -al 。

Linux下有大量命令/软件,在此我们仅列举几个可能会用到的,可以在使用过程中慢慢熟悉。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7384875.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-05
下一篇2023-04-05

发表评论

登录后才能评论

评论列表(0条)

    保存