ls 入门
借助该ls
命令,用户和超级用户可以列出有关文件和目录的信息。本文可帮助管理员和用户识别文件权限,这对于访问和基本故障排除很有用。
使用ls
最基本的是,您可以使用命令ls
查看目录中的文件:注意:列表可能有或可能没有颜色编码。
[root@centos7 ~]# ls /etc
abrt firewalld makedumpfile.conf.sample rdma
adjtime flatpak man_db.conf redhat-release
aliases fonts maven request-key.conf
aliases.db fprintd.conf mime.types request-key.d
alsa fstab mke2fs.conf resolv.conf
alternatives fuse.conf modprobe.d rhsm
anacrontab gconf modules-load.d rpc
...
有许多标志可用于在文件列表中提供更多信息。最常用的是-a
(或--all
),因为它会显示目录中的所有文件,包括以点开头的文件(例如.bash_logout
)。
另一个常见标志是-l
,它为您提供有关目录中文件的更多信息,包括文件的权限、所有权和大小。如果您想更轻松地分辨文件大小的单位(例如 1K、234M、2G),可以添加-h
( 的缩写--human-readable
)标志。
让我们来看一个例子。根用户目录中的简单文件列表可能是这样的:
[root@name ~]# ls /root
anaconda-ks.cfg
如果您想要此列表的长格式版本(我们将在下一节中介绍此处显示的附加信息):
[root@name ~]# ls -l /root
total 4
-rw-------. 1 root root 896 Feb 22 01:40 anaconda-ks.cfg
但是,如果添加-a
标志,ls
命令将返回包含隐藏项目的简短列表:
[root@name ~]# ls -a /root
. anaconda-ks.cfg .bash_logout .bashrc .cshrc .tcshrc
.. .bash_history .bash_profile .cache .local
考虑两个目录列表中的单句点和双句点。单点 ( .
) 指的是目录本身。如果您想要运行命令并引用当前目录(例如,当您想要将文件复制到那里时),这个点很方便。
双点 ( ..
) 表示父目录。如果您键入 ,cd ..
则会在文件系统层次结构中向上移动一步。例如,如果您当前的目录是/root
,则键入cd ..
会将您带到/
层次结构的最顶层。
如果将-a
选项与-l
选项组合起来-la
,您将获得有关隐藏和非隐藏文件的更多详细信息:
[root@name ~]# ls -la /root
total 44
dr-xr-x---. 4 root root 4096 Feb 11 05:47 .
dr-xr-xr-x. 19 root root 4096 Jul 11 13:15 ..
-rw-------. 1 root root 896 Feb 22 01:40 anaconda-ks.cfg
-rw-------. 1 root root 163 Jul 11 01:18 .bash_history
-rw-r--r--. 1 root root 18 Feb 2 10:37 .bash_logout
-rw-r--r--. 1 root root 176 Feb 2 10:37 .bash_profile
-rw-r--r--. 1 root root 176 Feb 2 10:37 .bashrc
drwx------. 3 root root 4096 Jul 11 01:37 .cache
-rw-r--r--. 1 root root 100 Feb 2 10:37 .cshrc
drwxr-xr-x. 3 root root 4096 Feb 22 01:57 .local
-rw-r--r--. 1 root root 129 Feb 2 10:37 .tcshrc
解码长列表格式
当你开始使用该-l
标志时,你会注意到更多信息。以下是输出示例行:
drwxrwxr-x 2 root test 4096 Dec 3 2009 test
左侧的第一个字符告诉您正在查看什么。如果它是d
,如您在此处所见,则表示该文件是一个目录,它基本上是一种特殊的文件(并且它将始终被称为文件)。但是,如果它是破折号 ( -
),则表示该文件是常规文件。
如果第一个字符是小写字母l
,则此项目将是一种称为符号链接或软链接的特殊文件类型,它是指向文件系统中另一个位置的指针(快捷方式)。此类列表可能如下所示:
lrwxrwxrwx 1 root root 4 Jun 30 03:29 sh -> bash
第一个字符后面是权限缩写,每三组组成一个。文件的权限由以下字母表示:
r
获取读取权限w
获得写权限x
执行权限
回到这个例子:
drwxrwxr-x 2 root test 4096 Dec 3 2009 test
- 第一个三元组(
rwx
)显示用户或文件所有者的权限。 - 下一个三元组(
rwx
)显示组类别的权限。 - 最后一个三元组(
r-x
)显示最后一个类别(其他)的权限。
在此示例中,既不是文件所有者也不是组内的用户具有读取和执行权限,但没有写入权限,如-
中间位置的破折号 ( ) 所示。
权限后面列出的数字表示链接数(对于文件)或所包含的目录条目数(对于目录)。此数字与权限无关。
在此数字之后,第一个名称表示文件的所有者。用户权限(第一个三元组)适用于此所有者,因此在此示例中,用户root
对此目录具有读取、写入和执行权限。
第二个名称是文件所属的组。组权限适用于同一组中的任何用户,因此在本例中,mail
组中的任何人都具有读取、写入和执行权限。
总结
现在您应该对从命令行获取文件信息有了更好的了解。该ls
命令有更多选项。输入man ls
以了解更多信息,并找出您最喜欢的标志组合来完成任务。您甚至可能想要创建一些别名。