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

时间:2020-03-05 15:27:24  来源:igfitidea点击:

“ 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”命令:

ls /etc /var /etc/passwd

如果我们登录的用户没有目录的读取权限,则会收到一条消息,提示“ ls”无法打开目录:

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

'ls'命令具有许多选项。
在以下各节中,我们将探讨最常用的选项。

长列表格式

“ ls”命令的默认输出仅显示文件和目录的名称,这不是很有用。

“ -l”(小写L)选项使“ ls”以长列表格式打印文件。

使用长列表格式时,“ 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'-插座

接下来的9个字符显示文件权限。
前三个字符用于用户,后三个字符用于组,后三个字符用于其他用户。
我们可以使用“ chmod”命令更改文件权限。

许可字符可以采用以下值:

  • 'r'-读取文件的权限
  • 'w'-写入文件的权限
  • 'x'-执行文件的权限
  • 's'-setgid位
  • 't'-粘性位

在我们的示例中,“ rw-r--r--”表示用户可以读写文件,而组和其他用户只能读取文件。
许可字符后的数字“ 1”是指向此文件的硬链接数。

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

“ 10月4日11:31”是文件的最后修改日期和时间。

最后一列是文件的名称。

显示隐藏文件

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

要显示所有文件(包括隐藏文件),请使用“ -a”选项:

ls -la ~/
drwxr-x--- 10 theitroad  theitroad  4096 Nov 12 16:28 .
drwxr-xr-x 18 theitroad  theitroad  4096 Dec 26 09:21 ..
-rw-------  1 theitroad  theitroad  1630 Nov 18  2016 .bash_history
drwxr-xr-x  2 theitroad  theitroad  4096 May 20  2016  bin
drwxr-xr-x  2 theitroad  theitroad  4096 May 20  2016  Desktop
drwxr-xr-x  4 theitroad  theitroad  4096 Dec 12  2016 .npm
drwx------  2 theitroad  theitroad  4096 Mar  4  2016 .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