1. 前言
本文主要详细讲解Linux系统中的dir
命令功能和使用方法。
本文展示了使用dir
命令列出目录内容的一些示例。dir命令不是Linux中常用的命令。尽管它的工作方式不太像大多数Linux用户喜欢使用的ls
命令。我们将讨论dir
命令,并在其中查看如何使用不同的选项和参数。
dir命令的一般语法如下所示。
dir [OPTION] [FILE]
2. dir命令用法与示例
简单的dir命令输出
dir /
[root@la ~]# dir /
bin boot dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
带有/etc
目录文件的dir命令的输出如下所示。从输出中可以看到,/etc
目录中并没有列出所有的文件。
dir /etc
[root@la ~]# dir /etc
adjtime DIR_COLORS host.conf lynx-site.cfg passwd- rpm sudoers.d
aliases DIR_COLORS.256color hostname machine-id pkcs11 rsyncd.conf sudo-ldap.conf
aliases.db DIR_COLORS.lightbgcolor hosts machine-info pki rsyslog.conf sysconfig
alternatives dracut.conf hosts.allow magic plymouth rsyslog.d sysctl.conf
anacrontab dracut.conf.d hosts.deny makedumpfile.conf.sample pm rwtab sysctl.d
要列出每行一个文件,请使用-1
选项,如下所示。
dir
dir -1
[root@la ~]# dir -l
total 117236
-rw-r–r– 1 root root 120040373 Sep 25 21:25 go1.13.1.linux-amd64.tar.gz
drwxr-xr-x 4 root root 4096 Oct 5 00:21 speedtest-cli
drwxr-xr-x 3 root root 4096 Oct 1 04:39 work
3. 使用dir
命令列出目录中的所有文件
包括.
(隐藏)文件,使用-a
选项。可以使用-l
选项将输出格式化为列表。
dir -a
dir -al
[root@la ~]# dir -a
. .acme.sh .bash_logout .bashrc .cshrc .pki speedtest-cli .tcshrc
.. .bash_history .bash_profile .cache go1.13.1.linux-amd64.tar.gz .rnd .ssh work
4. 使用dir
命令查看目录项而不是内容
当需要只列出目录条目而不是目录内容时,可以使用-d
选项。在下面的输出中,选项-d
列出/etc
目录的条目。
当您使用-dl
时,它会显示一个很长的目录列表,包括所有者、组所有者和权限。
[root@la ~]# dir -d /etc
/etc
[root@la ~]# dir -dl /etc
drwxr-xr-x. 85 root root 4096 Oct 5 00:24 /etc
5. 使用dir
命令查看文件的索引号
如果希望查看每个文件的索引号,请使用选项-i
。从下面的输出中,您可以看到第一列显示了数字。这些数字称为索引节点,有时也称为索引节点或索引号。
在Linux系统中,inode是文件系统上的数据存储,它存储关于文件的信息,但不包括文件名及其实际数据。
dir -il
total 117236
4509 -rw-r–r– 1 root root 120040373 Sep 25 21:25 go1.13.1.linux-amd64.tar.gz
136213 drwxr-xr-x 4 root root 4096 Oct 5 00:21 speedtest-cli
517883 drwxr-xr-x 3 root root 4096 Oct 1 04:39 work
6. 使用dir
命令以块的形式列出文件及其分配的大小
可以使用-s
选项查看文件大小。如果需要根据大小对文件进行排序,那么使用-S
选项。
在这种情况下,还需要使用-h
选项以人类可读的格式查看文件大小。
dir -shl
total 115M
115M -rw-r–r– 1 root root 115M Sep 25 21:25 go1.13.1.linux-amd64.tar.gz
4.0K drwxr-xr-x 4 root root 4.0K Oct 5 00:21 speedtest-cli
4.0K drwxr-xr-x 3 root root 4.0K Oct 1 04:39 work
在上面的输出中,第一列以千字节为单位显示文件的大小。下面的输出显示了使用-S
选项按大小排序的文件列表。
dir -ashlS /etc/
total 1.6M
656K -rw-r–r–. 1 root root 655K Jun 7 2013 services
156K -rw-r–r– 1 root root 153K Jun 10 2014 lynx.cfg
32K -rw-r–r– 1 root root 30K Oct 5 00:24 ld.so.cache
12K -rw-r–r– 1 root root 12K Sep 12 21:11 aliases.db
12K -rw-r–r–. 1 root root 8.7K Jun 10 2014 nanorc
8.0K -rw-r–r– 1 root root 7.2K Sep 30 15:25 kdump.conf
8.0K -rw-r–r–. 1 root root 6.6K Apr 11 2018 screenrc
您还可以根据修改时间排序,最近修改的文件首先出现在列表中。这可以使用-t
选项来完成。
[root@la ~]# dir -ashlt /root/
total 115M
24K -rw——- 1 root root 19K Nov 21 04:00 .bash_history
4.0K dr-xr-x—. 8 root root 4.0K Nov 21 03:43 .
4.0K drwxr-xr-x 4 root root 4.0K Oct 5 00:26 .cache
4.0K drwxr-xr-x 4 root root 4.0K Oct 5 00:21 speedtest-cli
4.0K -rw——- 1 root root 1.0K Oct 4 12:45 .rnd
4.0K drwx—— 8 root root 4.0K Oct 4 12:45 .acme.sh
4.0K -rw-r–r–. 1 root root 165 Oct 1 08:13 .tcshrc
4.0K -rw-r–r–. 1 root root 136 Oct 1 08:13 .cshrc
4.0K -rw-r–r–. 1 root root 207 Oct 1 08:13 .bashrc
4.0K -rw-r–r– 1 root root 343 Oct 1 08:13 .bash_profile
4.0K drwxr-xr-x 3 root root 4.0K Oct 1 04:39 work
4.0K drwx—— 2 root root 4.0K Sep 30 15:22 .ssh
115M -rw-r–r– 1 root root 115M Sep 25 21:25 go1.13.1.linux-amd64.tar.gz
4.0K drwxr—– 3 root root 4.0K Sep 12 21:11 .pki
4.0K dr-xr-xr-x. 18 root root 4.0K Sep 12 21:08 ..
4.0K -rw-r–r–. 1 root root 18 Dec 29 2013 .bash_logout
7. 使用dir
命令列出没有所有者或组所有者的文件
要列出没有所有者的文件,您必须使用-g
选项,它与-l
选项类似,只是不打印文件所有者。若要列出没有组所有者的文件,请使用-G
选项,如下所示。
dir -ahgG /root
total 115M
dr-xr-x—. 8 4.0K Nov 21 03:43 .
dr-xr-xr-x. 18 4.0K Sep 12 21:08 ..
drwx—— 8 4.0K Oct 4 12:45 .acme.sh
-rw——- 1 19K Nov 21 04:00 .bash_history
-rw-r–r–. 1 18 Dec 29 2013 .bash_logout
-rw-r–r– 1 343 Oct 1 08:13 .bash_profile
-rw-r–r–. 1 207 Oct 1 08:13 .bashrc
drwxr-xr-x 4 4.0K Oct 5 00:26 .cache
-rw-r–r–. 1 136 Oct 1 08:13 .cshrc
-rw-r–r– 1 115M Sep 25 21:25 go1.13.1.linux-amd64.tar.gz
drwxr—– 3 4.0K Sep 12 21:11 .pki
-rw——- 1 1.0K Oct 4 12:45 .rnd
drwxr-xr-x 4 4.0K Oct 5 00:21 speedtest-cli
drwx—— 2 4.0K Sep 30 15:22 .ssh
-rw-r–r–. 1 165 Oct 1 08:13 .tcshrc
drwxr-xr-x 3 4.0K Oct 1 04:39 work
您可以从上面的输出中注意到,文件所有者和组所有者的名称没有打印出来。还可以使用-author
标志查看文件的作者,如下所示。
dir -al --author /root
total 117308
dr-xr-x—. 8 root root root 4096 Nov 21 03:43 .
dr-xr-xr-x. 18 root root root 4096 Sep 12 21:08 ..
drwx—— 8 root root root 4096 Oct 4 12:45 .acme.sh
-rw——- 1 root root root 19436 Nov 21 04:00 .bash_history
-rw-r–r–. 1 root root root 18 Dec 29 2013 .bash_logout
在上面的输出中,第五列显示了文件作者的名字。文件由用户root拥有,属于组root,由用户root编写。
8. 使用dir
命令在其他文件之前列出目录
您可能希望在查看所有其他文件之前查看目录,这可以通过使用-group-directories-first
标志来实现,如下所示。
dir -l --group-directories-first
total 117236
drwxr-xr-x 4 root root 4096 Oct 5 00:21 speedtest-cli
drwxr-xr-x 3 root root 4096 Oct 1 04:39 work
-rw-r–r– 1 root root 120040373 Sep 25 21:25 go1.13.1.linux-amd64.tar.gz
当您观察上面的输出时,您可以看到所有目录都列在常规文件之前。权限前面的字母d
表示目录,字母a
表示常规文件。
还可以递归地查看子目录,这意味着可以使用-R
选项列出目录中的所有其他子目录,如下所示。
dir -R
9. 使用dir
命令查看用户和组id,而不是名称
要查看用户和组id,需要使用-n
选项。让我们来观察一下下面两个输出之间的区别。
输出没有-n
选项。
[root@la ~]# dir -l --author
total 117236
-rw-r–r– 1 root root root 120040373 Sep 25 21:25 go1.13.1.linux-amd64.tar.gz
drwxr-xr-x 4 root root root 4096 Oct 5 00:21 speedtest-cli
drwxr-xr-x 3 root root root 4096 Oct 1 04:39 work
输出与-n
选项。
[root@la ~]# dir -nl --author
total 117236
-rw-r–r– 1 0 0 0 120040373 Sep 25 21:25 go1.13.1.linux-amd64.tar.gz
drwxr-xr-x 4 0 0 0 4096 Oct 5 00:21 speedtest-cli
drwxr-xr-x 3 0 0 0 4096 Oct 1 04:39 work
10. 使用dir
命令查看用逗号分隔的条目
这可以通过使用-m
选项存档。
dir -am
要查找使用dir
命令use -help
标志的帮助,并查看dir use -version
的版本详细信息。
11. 结论
本文主要讲解Linux系统中的dir
命令的作用与详细解释。
这些只是dir
命令基本用法的示例,要使用其他许多选项,请参阅系统上dir
命令的手动输入。如果您发现其他有趣的选项或使用dir
命令的方法,请留下您的评论。希望这篇文章对你有用。
评论前必须登录!
注册