整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

linux ls命令查看目录文件详解

inux中ls命令用来查看目录中的所有文件和子目录,可选的参数比较多,本文筛选一些常用的参数。

参数

-a :全部的文件,连同隐藏文件(开头为.的文件)一起列出来

-A :全部的文件,连同隐藏文件,但是不包括.和…这两个目录

-d :仅列出目录本身,而不是列出目录内的文件数据

-f :直接列出结果,而不进行排序(ls默认会以文件名排序)

-F:根据文件、目录等信息,给予附件数据结构,例如:*:代表可执行文件;/:代表目录;=:代表socket文件;|:代表FIFO文件

-h:将文件容量以人类较易读的方式(如GB,KB等)列出来

-i:列出inode号码

-l:详细信息显示,包含文件的属性和权限等数据

-n:列出UID和GID而非使用者与用户组的名称

-r:将排序结果反向输出,例如:原本文件名由小到大,反向则由大到小

-R:连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来

-S:以文件容量大小排序,而不是用文件名排序

-t:依时间排序,而不是用文件名排序

实例

关注本头条号,每天坚持更新原创干货技术文章。

如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习

1. 前言

本文主要讲解Linux系统中ls命令15个基本的日常使用案例。

ls命令是Linux中最常用的命令之一。我相信ls命令是你进入Linux系统的命令提示符时可以使用的第一个命令。

我们每天都使用ls命令,而且经常使用,即使我们可能不知道,也从不使用所有可用的ls选项。在本文中,我们将讨论基本的ls命令,在这些命令中,我们已经尝试覆盖尽可能多的参数。

Linux中15个基本的ls命令使用案例


1. 使用`ls`命令列出文件使用不使用选项

没有选项列表文件和目录在默认格式中,我们将无法查看的细节,如文件类型,大小,修改日期和时间,权限和链接等。

ls

fonttosfnt luac printenv src-hilite-lesspipe.sh
a2p free lynx printf ssh
a2x fribidi lz4 prlimit ssh-add

2. 列出文件选项`-l`

在这里,ls -l (-l不是一个字符)显示文件或目录、大小、修改日期和时间、文件或文件夹名称、文件所有者及其权限。

[root@la bin]# ls -l

total 93340
-rwxr-xr-x 1 root root 41488 Aug 20 06:25 [
-rwxr-xr-x 1 root root 107904 Jan 21 2019 a2p
lrwxrwxrwx 1 root root 6 Sep 30 16:04 a2x -> a2x.py
-rwxr-xr-x 1 root root 36826 Jun 10 2014 a2x.py
-rwxr-xr-x 2 root root 36734 Jun 10 2014 aclocal
-rwxr-xr-x 2 root root 36734 Jun 10 2014 aclocal-1.13

3. 查看隐藏文件

列出所有文件,包括以.开头的隐藏文件。

[root@la ~]# ls -a

Linux使用ls命令查看隐藏文件


. .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. 列表文件与人类可读的格式与选项`-lh`

结合-lh选项,显示大小在人类可读的格式。

[root@la ~]# ls -lh

total 127M
-rw-r--r-- 1 root root 115M Sep 25 21:25 go1.13.1.linux-amd64.tar.gz
drwxr-xr-x 4 root root 4.0K Oct 5 00:21 speedtest-cli
drwxr-xr-x 3 root root 4.0K Oct 1 04:39 work

使用ls命令列出文件与人类可读的格式与选项


5. 列出以`/`结尾的文件和目录

使用-F选项和ls命令,将在每个目录的末尾添加/字符。

[root@la ~]# ls -F

go1.13.1.linux-amd64.tar.gz speedtest-cli/ work/

6. 按相反的顺序列出文件

下面带有ls -r选项的命令以相反的顺序显示文件和目录。

[root@la ~]# ls -r

work speedtest-cli go1.13.1.linux-amd64.tar.gz

按相反的顺序列出文件


7. 递归地列出子目录

ls -R选项将列出非常长的目录树。参见该命令的输出示例。

ls -R

total 1384
-rw-------. 1 root root 33408 Aug 8 17:25 anaconda.log
-rw-------. 1 root root 30508 Aug 8 17:25 anaconda.program.log

./httpd:
total 132
-rw-r--r-- 1 root root 0 Aug 19 03:14 access_log
-rw-r--r--. 1 root root 61916 Aug 10 17:55 access_log-20120812

./lighttpd:
total 68
-rw-r--r-- 1 lighttpd lighttpd 7858 Aug 21 15:26 access.log
-rw-r--r--. 1 lighttpd lighttpd 37531 Aug 17 18:21 access.log-20120819

./nginx:
total 12
-rw-r--r--. 1 root root 0 Aug 12 03:17 access.log
-rw-r--r--. 1 root root 390 Aug 12 03:17 access.log-20120812.gz

8. 反向输出顺序

结合-ltr将显示最新的修改文件或目录日期作为最后。

ls -ltr

total 117236
-rw-r--r-- 1 root root 120040373 Sep 25 21:25 go1.13.1.linux-amd64.tar.gz
drwxr-xr-x 3 root root 4096 Oct 1 04:39 work
drwxr-xr-x 4 root root 4096 Oct 5 00:21 speedtest-cli

9. 根据文件大小对文件进行排序

结合-lS显示文件大小顺序,先显示大的大小。

[root@la ~]# ls -lS

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

10. 显示Inode文件或目录的编号

我们可以看到在文件/目录名之前打印了一些数字。与-i选项列表文件/目录inode号。

[root@la ~]# ls -i

4509 go1.13.1.linux-amd64.tar.gz 136213 speedtest-cli 517883 work

11. 显示`ls`命令的版本

检查ls命令的版本。

[root@la ~]# ls --version

ls (GNU coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Richard M. Stallman and David MacKenzie.

12. 显示帮助页

列出ls命令的帮助页及其选项。

ls --help

Usage: ls [OPTION]… [FILE]…

13. 目录信息列表

与ls -l命令列表文件目录下/tmp。其中-ld参数显示/tmp目录信息。

[root@la ~]# ls -l /tmp

total 4
drwx------ 3 root root 4096 Oct 2 02:06 systemd-private-cf25500e5e75405d8f53b94e9bab779e-chronyd.service-65Kblr

14. 总结

通过本文教程,您应该可以清楚了解Linux ls命令的功能与日常基本使用方法了吧?

本文已同步至博客站,尊重原创,转载时请在正文中附带以下链接:
https://www.linuxrumen.com/rmxx/1528.html

点击了解更多,快速查看更多的技术文章列表。

关注本头条号,每天坚持更新原创干货技术文章。
如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习

1. 前言

本文主要详细讲解Linux ls命令的日常使用方法。

每当需要在Linux的命令行上查看目录的内容时,都会使用ls命令。它列出了按字母顺序排列的内容。

虽然这是该工具的基本用法,但它提供了大量特性(以命令行选项的形式),可以在几种情况下帮助您。在本教程中,我们将通过一些易于理解的示例来讨论这些命令行选项的用法。

2. 如何查看隐藏的文件或目录

ls命令默认情况下不显示隐藏的文件/目录。但是,您可以使用-a选项强制工具这样做。因此,要列出当前目录中的所有文件/目录(包括隐藏的文件/目录即名称以点'.'开头的文件/目录),请运行以下命令:

ls

如何查看隐藏的文件或目录

3. ls命令查看文件输出结果忽略当前目录(.)和上一层的目录(..)

当使用-a命令行选项时,当前目录(.)和上一层目录(..)也会出现。如果希望ls在输出中不显示这些,可以使用-A选项。

ls命令查看文件输出结果忽略当前目录(.)和上一层的目录(..)

以上输出中,没有显示当前目录(.)及上一层目录(..)

4. 如何以相反的顺序显示文件名或目录名

默认情况下,ls命令按字母顺序显示输出中的文件。但是如果您有需要,您还可以使该工具以相反的顺序显示文件。为此,您必须使用该工具的-r命令行选项。

ls -r

如何以相反的顺序显示文件或或目录名

通过上图,你可以看到zcwyou.rar这个文件显示在前面。

5. 如何根据文件扩展名对ls命令输出进行排序

要根据文件扩展名按字母顺序排列ls命令输出,请使用-X命令行选项。

如何根据文件扩展名对ls命令输出进行排序

上图中可以看到,排序是按文件后缀名首字母的反顺序显示的。

6. 如何根据修改时间对文件进行排序

如果您想快速知道最近修改了哪些文件或目录,那么可以使用ls命令的-t选项。

ls -t

-t选项首先显示最新最新修改的目录或目录。

按时间排列文件并显示详细信息

ls -lt

按时间排列文件并显示详细信息

上图中,第一个文件是最新的。

7. 如何递归列出当前目录子目录所有的文件

如果需要,还可以让ls命令显示子目录的内容。这可以使用-R命令行选项来完成。

ls -R 

如何递归列出当前目录子目录所有的文件

上图使用ls -R命令显示/etc/httpd及其子目录里所有的文件。

8.如何列出文件名及其inode编号

ls命令还允许列出文件/目录名称及其各自的inode编号。该工具提供-i命令行选项来访问该特性。

ls -i

如何列出文件名及其inode编号

通过上图可以看出,文件名前面带数字,是Linux文件的inode编号

9. 如何显示文件和目录的详细信息

ls命令还可以打印关于文件和目录的详细信息。要启用这种输出格式(也称为长清单格式),需要使用-l命令行选项。

如何显示文件和目录的详细信息

正如您在上面的屏幕截图中所看到的,输出分为8列。以下是这些栏目传达的信息:
第一列显示文件权限
第二列显示硬链接的数量
第三个和第四个是所有者名和组名
第五是文件大小
第六和第七是最后修改的日期和时间
最后一个是文件的名称。

10. 如何显示作者信息

在生成长格式目录清单时,还可以要求ls命令列出每个文件的作者。为此,必须将—author选项与-l组合。

ls -l --author

如何显示作者信息

正如您在上面的屏幕截图中所看到的,新添加的第五列是针对作者的。

注意:GNU官方网站说:“在GNU/Hurd中,文件作者可以与他们的所有者不同,但是在其他操作系统中,两者是相同的。”

11. 如何打印非图形字符的c样式转义(如换行和空格)

假设当前目录包含一个名称具有换行字符的文件。如果尝试列出该目录的内容,则会显示包含问号(?)的特定文件名,该问号(?)表示不可打印字符。

但是,ls命令提供了一个选项,当使用该选项时,可以为不可打印的字符打印c样式的转义字符。问题中的选项是-b。

因此,您可以在上面的屏幕截图中看到,-b选项导致ls为换行字符打印“\n”。类似地,在这种模式下,空格由'[space]'表示。

如何打印非图形字符的c样式转义(如换行和空格)

留意上图new file.txt这个文件,表明名字名中有空隔。

12. 如何以字节以外的单位打印文件大小

如果您想知道文件的大小,就必须使用前面第3点中讨论的-l选项(它支持长清单格式)。默认情况下,大小以字节显示。然而,在某些情况下,您可能想要以千字节或兆字节为单位的大小。

ls命令有一个选项,允许您指定要显示文件大小的单元。例如,如果希望以千字节为单位显示大小,可以运行以下命令:

ls -l --block-size=k [file-name]

请记住,使用-l命令行选项生成的大小是实际的文件大小,或者数据的大小。如果您想知道文件系统上文件的大小或分配的大小(它可以是不同的),那么您必须使用-s命令。

ls -s --block-size=k [file-name]

13. 如何使`ls`在输出结果中只显示文件名和文件大小

如果希望ls命令输出只包含文件/目录名及其各自的大小,那么可以使用-h选项和-l或-s命令行选项组合使用。

例如:

ls -l -h

14. 如何使`ls`命令不在输出结果中列出备份文件

在Linux中,备份文件用以波浪号(~)结尾的名称表示。ls命令提供了一个选项(-B),如果你有需要,您可以使用该选项要求工具不要在输出中列出备份文件。

如何使ls命令不在输出结果中列出备份文件

15. 使用`ls`命令显示文件分类

使用-F显示文件分类:

使用ls命令显示文件分类

上图输出结果中,文件名后面带一些符号,以下是它们所表明的信息:

@表示符号链接
*表示可执行文件
=表示套接字文件
|表示一个命名管道
>表示一扇门
/表示一个目录

16. 如何更改`ls`命令输出格式

如果需要,还可以更改ls命令的输出格式。该工具的--format选项允许您这样做。此选项要求您传递一个值,该值指示您想要的输出格式类型。可用的值有:“verbose”或“long”、“逗号”、“horizontal”或“across”、“vertical”和“single-column”。

例如,当需要逗号分隔的输出时,使用--format=commas:

文件以逗号分隔的形式显示

通过上面的命令可以看到,文件以逗号分隔的形式显示。

类似地,当您希望输出显示在单个列中时,使用--format=single-column

文件以分行的形式显示

通过上图可以看到,文件以分行的形式显示。

17. 如何使用`ls`使用隐藏特定类型的文件

如果有需要,还可以强制ls命令在输出中隐藏特定类型的文件。--hide选项(需要传递一个shell模式)允许您这样做。例如,如果不希望工具在输出中不显示.txt文件,应该运行以下命令:

ls --hide=*.txt

下面的屏幕截图显示了没有和带有--hide选项的输出。

如何使ls命令隐藏特定类型的文件

通过上图可以看到,执行第二条命令显示出来的结果并没有带.txt文件。

18. 结论

虽然ls是一个非常基本的命令,但是如何有效地使用它取决于用户对该工具提供的命令行选项的了解程度。请尝试我们在本教程中讨论的选项,如果有任何疑问或查询,请访问手册页面。

本文已同步至博客站,尊重原创,转载时请在正文中附带以下链接:
https://www.linuxrumen.com/rmxx/1310.html

点击了解更多,快速查看更多的技术文章列表。