Ls命令在Linux中的应用(列出文件和目录)

评论 0 浏览 0 2019-02-26

ls是任何一个Linux用户都应该知道的基本命令之一。

ls命令列出文件系统中的文件和目录,并显示它们的详细信息。它是GNU核心实用程序包的一部分,安装在所有Linux发行版上。

本文将通过实际的例子和对最常见的ls选项的详细解释,向你展示如何使用ls命令。

如何使用 ls 命令

ls命令的句法如下:

ls [OPTIONS] [FILES]

当使用时没有选项和参数,ls显示一个当前工作目录中所有文件的名称列表。

ls

文件是按字母顺序排列的,有多少列就有多少列,在你的终端机上就有多少列。

输出

cache  db  empty  games  lib  local  lock  log  mail  opt  run  spool  tmp

要列出特定目录下的文件,可将目录路径作为参数传给ls命令。例如,要列出/etc目录的内容,你可以键入:

ls /etc

你也可以传递多个目录和文件,用空格隔开:

ls /etc /var /etc/passwd

如果你登录的用户没有该目录的读取权限,你会得到一个消息,说ls不能打开该目录。

ls /root

输出

ls: cannot open directory '/root': Permission denied

ls命令有许多选项。在下面的章节中,我们将探讨最常用的选项。

长列表格式

ls命令的默认输出只显示文件和目录的名称,这不是很有信息量。

-l(小写字母L)选项告诉ls以长列表的形式打印文件。

当使用长列表格式时,你可以看到以下的文件信息。

  • 文件类型。
  • 文件的权限。
  • 文件的硬链接的数量。
  • 文件的所有者。
  • 文件组。
  • 文件的大小。
  • 日期和时间。
  • 文件名。

下面是一个例子:

ls -l /etc/hosts

输出

-rw-r--r-- 1 root root 337 Oct  4 11:31 /etc/hosts

让我们来解释一下输出的最重要的几列。

第一个字符显示文件类型。在这个例子中,第一个字符是-,表示一个普通文件。其他文件类型的值如下。

  • - - 普通的文件。
  • b - 块状的特殊文件。
  • c - 字符特殊文件。
  • d - 目录。
  • l - 符号链接。
  • n - 网络文件。
  • p - 先进先出。
  • s - Socket。

接下来的九个字符显示的是文件权限。前三个字符是用户的,后三个是组的,最后三个是其他人的。你可以用chmod命令来改变文件的权限。权限字符可以取以下值。

  • r - 读取文件的权限。
  • w - 写入文件的权限。
  • x - 允许执行该文件的权限。
  • s - setgid位。
  • t - sticky位。

在我们的例子中,rw-r--r--意味着用户可以读和写这个文件,而组和其他人只能读这个文件。权限字符后面的数字1是这个文件的硬链接的数量。

接下来的两个字段root root是显示文件所有者和组,然后是文件的大小(337),以字节为单位显示。如果你想以人类可读的格式打印尺寸,请使用-h选项。你可以用chown命令改变文件所有者。

Oct 4 11:31是最后一次修改文件的日期和时间。

最后一栏是文件的名称。

显示被隐藏的文件

默认情况下,ls命令不会显示隐藏文件。在Linux中,隐藏文件是任何以点(.)开头的文件。

要显示所有的文件,包括隐藏的文件,请使用-a选项。

ls -la ~/

输出

drwxr-x--- 10 linuxize  linuxize  4096 Feb 12 16:28 .
drwxr-xr-x 18 linuxize  linuxize  4096 Dec 26 09:21 ..
-rw-------  1 linuxize  linuxize  1630 Nov 18  2017 .bash_history
drwxr-xr-x  2 linuxize  linuxize  4096 Jul 20  2018  bin
drwxr-xr-x  2 linuxize  linuxize  4096 Jul 20  2018  Desktop
drwxr-xr-x  4 linuxize  linuxize  4096 Dec 12  2017 .npm
drwx------  2 linuxize  linuxize  4096 Mar  4  2018 .ssh

对输出结果进行排序

正如我们已经提到的,默认情况下,ls命令是按字母顺序排列文件的。

--sort选项允许你按扩展名、大小、时间和版本对输出结果进行排序。

  • --sort=extension (或-X )--按扩展名的字母顺序排序。
  • --sort=size(或-S)--按文件大小排序。
  • --sort=time(或-t)--按修改时间排序。
  • --sort=version(或-v)--版本号的自然排序。

如果你想以相反的排序顺序获得结果,请使用-r选项。

例如,如果要按修改时间对/var目录中的文件进行排序,你可以使用相反的排序顺序。

ls -ltr /var

值得一提的是,ls命令并不显示目录内容占用的总空间。要得到一个目录的大小,请使用du命令。

递归地列出子目录

-R选项告诉ls命令以递归的方式显示子目录的内容。

ls -R

总结

ls命令列出了有关文件和目录的信息。

关于ls的更多信息,请访问GNU Coreutils页面或在你的终端输入man ls

如果你有任何问题或反馈意见,请随时留言。

最后更新2023-09-16
0 个评论
标签