Linux / Unix ls(列表)命令示例

Linux/Unix ls (List) Command Examples

ls命令是Linux中最基本且最常用的命令之一。

我可以说,这是Linux用户的心。

我相信每个人登录Linux系统时都首先使用ls命令。

ls命令带有许多选项,每个选项都会为您提供不同类型的输出,可用于多种用途。

ls命令是什么?

ls表示List,ls命令用于显示目录内容。

它列出了有关文件和目录的信息,例如文件许可权,链接数,所有者名称,所有者组,文件大小,上次修改时间以及文件/目录名称。

The ls command output comes with seven fields.

1
2
3
4
+------------------------------------------------------------------------------+
|-rw-r--r-- | 1 | daygeek | daygeek |  14M | Jan  3  2019 | 2daygeek_access.log|
|    1      | 2 |    3    |    4    |  5   |       6      |         7          |
+------------------------------------------------------------------------------+

The details are below.

1
2
3
4
5
6
7
Field-1 (-rw-r--r--) : File Permissions
Field-2 (1) : The number of links or directories inside this directory.
Field-3 (daygeek) : File owner name
Field-4 (daygeek) : File group name
Field-5 (14M) : File size
Field-6 (Jan  3  2019) : Last modification date and time of the file.
Field-7 (2daygeek_access.log) : Name of the file.

第一个字段带有10个字符,表示Linux文件的权限。 第一个字符指示文件的类型。 第一个字段中的后9个字符代表权限。 每3个字符表示对所有者,组和其他用户的读取(r),写入(w),执行(x)权限。

1
2
3
4
5
6
7
8
9
10
11
Field-1 (-|rw-|r--|r--) : File Permissions

The first character indicates the type of the file.
- : It indicates for normal file
d : It indicates for directory
l : It indicates for link file
s : It indicates for socket file

2-4 characters indicates permissions on owner.
5-7 characters indicates permissions on group.
8-10 characters indicates permissions on others.

1)使用ls命令列出目录内容,不带任何选项

当使用不带任何选项的ls命令时,它将仅显示水平格式的文件和目录名称。

当您无法在单个页面中放置目录内容时,它可以帮助您轻松检查目录中的文件和目录列表。

1
2
3
4
5
6
$ ls

2g.out                   cpu-alert.sh         guna_server.sh*     mysql_backup_2.sh*  pass-multi-user.sh*  port_scan.sh*    service1.sh   service3.sh  user-add.sh*
bulk-package-install.sh  cpu-mem-check.sh*    jwhois-check.sh     mysql_backup.sh*    pass-up.sh*          process.sh       service2a.sh  servicem.sh  whois-check.sh*
cpu-alert1.sh            disk-space-alert.sh  memory-monitor.sh   ovh.sh*             passwd-up1.sh*       server-list.txt  service2.sh   service.sh   xsos*
cpu-alert2.sh            file-copy.sh         mysql_backup_1.sh*  pass-gen.sh*        passwd-up.sh*        service1a.sh     service3a.sh  test.txt

2)如何以详细格式列出目录内容?

可以通过在ls命令中添加-l选项来实现。 我主张长期上市。 使用以下ls命令查看给定目录内容中的详细信息。

它显示了文件许可权,用户名,组名,文件大小,文件创建日期和文件创建时间。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ ls -l
total 276
-rw-r--r-- 1 daygeek daygeek   4780 Apr 11 14:57 2g.out
-rw-r--r-- 1 daygeek daygeek     78 Apr 26 11:39 bulk-package-install.sh
-rw-r--r-- 1 daygeek daygeek    764 May 26 15:33 cpu-alert1.sh
-rw-r--r-- 1 daygeek daygeek    616 Jun  2 13:25 cpu-alert2.sh
-rw-r--r-- 1 daygeek daygeek    538 May 25 19:25 cpu-alert.sh
-rwxr-xr-x 1 daygeek daygeek   1361 Feb  9  2019 cpu-mem-check.sh*
-rw-r--r-- 1 daygeek daygeek    410 Apr 27 23:58 disk-space-alert.sh
-rw-r--r-- 1 daygeek daygeek     99 Jan 19  2019 file-copy.sh
-rwxr-xr-x 1 daygeek daygeek     65 Apr 16 23:23 guna_server.sh*
-rw-r--r-- 1 daygeek daygeek    208 May 24 12:04 jwhois-check.sh
-rw-r--r-- 1 daygeek daygeek    776 Jun 14 12:00 memory-monitor.sh
-rwxr-xr-x 1 daygeek daygeek    237 Apr  6 10:40 mysql_backup_1.sh*
-rwxr-xr-x 1 daygeek daygeek    241 Apr  6 10:49 mysql_backup_2.sh*
-rwxr-xr-x 1 daygeek daygeek    761 Apr  6 21:36 mysql_backup.sh*

3)如何以可读格式列出目录内容?

与上面相同,但另外显示了文件和目录的大小(KB,MB和GB)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ ls -lh
total 276K
-rw-r--r-- 1 daygeek daygeek 4.7K Apr 11 14:57 2g.out
-rw-r--r-- 1 daygeek daygeek   78 Apr 26 11:39 bulk-package-install.sh
-rw-r--r-- 1 daygeek daygeek  764 May 26 15:33 cpu-alert1.sh
-rw-r--r-- 1 daygeek daygeek  616 Jun  2 13:25 cpu-alert2.sh
-rw-r--r-- 1 daygeek daygeek  538 May 25 19:25 cpu-alert.sh
-rwxr-xr-x 1 daygeek daygeek 1.4K Feb  9  2019 cpu-mem-check.sh*
-rw-r--r-- 1 daygeek daygeek  410 Apr 27 23:58 disk-space-alert.sh
-rw-r--r-- 1 daygeek daygeek   99 Jan 19  2019 file-copy.sh
-rwxr-xr-x 1 daygeek daygeek   65 Apr 16 23:23 guna_server.sh*
-rw-r--r-- 1 daygeek daygeek  208 May 24 12:04 jwhois-check.sh
-rw-r--r-- 1 daygeek daygeek  776 Jun 14 12:00 memory-monitor.sh
-rwxr-xr-x 1 daygeek daygeek  237 Apr  6 10:40 mysql_backup_1.sh*
-rwxr-xr-x 1 daygeek daygeek  241 Apr  6 10:49 mysql_backup_2.sh*
-rwxr-xr-x 1 daygeek daygeek  761 Apr  6 21:36 mysql_backup.sh*

4)如何在Linux中列出给定目录中的隐藏文件和目录?

缺省情况下,ls命令输出不会显示隐藏的文件和目录。 在Linux中,隐藏的文件和目录带有. (dot)前缀。

使用以下ls命令一起列出所有内容,可以通过在ls命令中添加-a选项来实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
ls -lah /home/daygeek/
total 2.1G
drwx------ 47 daygeek daygeek 4.0K Aug  9 22:44  ./
drwxr-xr-x  3 root    root    4.0K Nov 24  2018  ../
-rw-r--r--  1 daygeek daygeek 100M Jul 29 11:17  100MB.bin
-rw-r--r--  1 daygeek daygeek  14M Jan  3  2019  2daygeek_access.log
-rw-r--r--  1 daygeek daygeek  14M Jan  3  2019  2daygeek.com
-rw-r--r--  1 daygeek daygeek 785K Jan  3  2019  2daygeek.html
drwxr-xr-x  2 daygeek daygeek 4.0K Jan 20  2019  2g/
lrwxrwxrwx  1 daygeek daygeek   47 Jan  6  2019  2g-files -> /home/daygeek/Desktop/Daily_Activity/2g-images//
-rw-r--r--  1 daygeek daygeek 4.4K Dec 24  2018  2g-test
-rw-r--r--  1 daygeek daygeek 229K Jan  5  2019  2g-test-05-01-2019.tar.gz
-rw-r--r--  1 daygeek daygeek 2.0K May 23 13:25  angergos-ends.txt
-rw-r--r--  1 daygeek daygeek 8.7K Jun 23 02:08  apt-clone.txt
-rw-------  1 daygeek daygeek  14K Aug  5 02:45  .bash_history
-rw-r--r--  1 daygeek daygeek   21 Jun 14  2018  .bash_logout
-rw-r--r--  1 daygeek daygeek   95 Dec 13  2018  .bash_profile
-rw-r--r--  1 daygeek daygeek 4.2K Mar 15 12:05  .bashrc
drwxr-xr-x  6 daygeek daygeek 4.0K Feb 20 17:46  betty/
-rw-r--r--  1 daygeek daygeek 1.2K Feb 22 09:52  .betty_history
drwxr-xr-x  3 daygeek daygeek 4.0K Jan  6  2019  .bundle/
drwx------ 41 daygeek daygeek 4.0K Aug 14 12:54  .cache/
-rw-------  1 daygeek daygeek   35 Mar 13 12:09  .calc_history
drwxr-xr-x  4 daygeek daygeek 4.0K Dec 13  2018  .cargo/

5)如何在Linux中根据上次修改时间对文件和目录进行排序?

有时您可能需要根据上次修改时间对文件和目录进行排序。 如果是这样,请使用以下ls命令,可以通过在ls命令中添加-t选项来实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ ls -lth
total 276K
-rw-r--r-- 1 daygeek daygeek  296 Aug  4 01:27 servicem.sh
-rw-r--r-- 1 daygeek daygeek  361 Jul 29 19:45 service3a.sh
-rw-r--r-- 1 daygeek daygeek  312 Jul 29 19:38 service2.sh
-rw-r--r-- 1 daygeek daygeek  324 Jul 29 19:37 service2a.sh
-rw-r--r-- 1 daygeek daygeek  177 Jul 29 19:34 service1a.sh
-rw-r--r-- 1 daygeek daygeek  341 Jul 29 19:26 service3.sh
-rw-r--r-- 1 daygeek daygeek  288 Jul 29 19:10 service.sh
-rw-r--r-- 1 daygeek daygeek  157 Jul 29 18:29 service1.sh
-rw-r--r-- 1 daygeek daygeek  776 Jun 14 12:00 memory-monitor.sh
-rw-r--r-- 1 daygeek daygeek  830 Jun 14 11:54 process.sh
-rw-r--r-- 1 daygeek daygeek  616 Jun  2 13:25 cpu-alert2.sh
-rw-r--r-- 1 daygeek daygeek  764 May 26 15:33 cpu-alert1.sh
-rw-r--r-- 1 daygeek daygeek  538 May 25 19:25 cpu-alert.sh
-rwxr-xr-x 1 daygeek daygeek  204 May 24 12:07 whois-check.sh*

6)在Linux上如何根据上次修改的时间以相反的顺序对文件和目录进行排序?

与上面相同,但是以相反的顺序对输出进行排序。

当给定目录中包含大量内容时,此选项可能很有用,因为该内容在页面底部显示了所需的文件。 可以通过在ls命令中添加-r选项来实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ ls -ltrh

-rw-r--r-- 1 daygeek daygeek  764 May 26 15:33 cpu-alert1.sh
-rw-r--r-- 1 daygeek daygeek  616 Jun  2 13:25 cpu-alert2.sh
-rw-r--r-- 1 daygeek daygeek  830 Jun 14 11:54 process.sh
-rw-r--r-- 1 daygeek daygeek  776 Jun 14 12:00 memory-monitor.sh
-rw-r--r-- 1 daygeek daygeek  157 Jul 29 18:29 service1.sh
-rw-r--r-- 1 daygeek daygeek  288 Jul 29 19:10 service.sh
-rw-r--r-- 1 daygeek daygeek  341 Jul 29 19:26 service3.sh
-rw-r--r-- 1 daygeek daygeek  177 Jul 29 19:34 service1a.sh
-rw-r--r-- 1 daygeek daygeek  324 Jul 29 19:37 service2a.sh
-rw-r--r-- 1 daygeek daygeek  312 Jul 29 19:38 service2.sh
-rw-r--r-- 1 daygeek daygeek  361 Jul 29 19:45 service3a.sh
-rw-r--r-- 1 daygeek daygeek  296 Aug  4 01:27 servicem.sh

7)当使用不带任何选项的ls命令时,如何仅列出具有垂直格式的目录内容?

与第一个示例相同,但是它以垂直格式而不是水平格式打印输出。

如果是这样,请使用以下ls命令,可以通过在ls命令中添加-1 (Numeric One)选项来实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ ls -1

2g.out
bulk-package-install.sh
cpu-alert1.sh
cpu-alert2.sh
cpu-alert.sh
cpu-mem-check.sh*
disk-space-alert.sh
file-copy.sh
guna_server.sh*
jwhois-check.sh
memory-monitor.sh
mysql_backup_1.sh*
mysql_backup_2.sh*
mysql_backup.sh*
ovh.sh*
pass-gen.sh*

8)如何在Linux上以相反的顺序列出目录内容?

缺省情况下,ls命令以升序打印输出,例如0-9和a-z。

如果要以相反的顺序打印输出,请使用以下ls命令,可以通过在ls命令中添加-r选项来实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ ls -lhr

total 276K
-rwxr-xr-x 1 daygeek daygeek 137K May 12 20:26 xsos*
-rwxr-xr-x 1 daygeek daygeek  204 May 24 12:07 whois-check.sh*
-rwxr-xr-x 1 daygeek daygeek  214 Mar 10 22:15 user-add.sh*
-rw-r--r-- 1 daygeek daygeek    0 Apr 29 10:25 test.txt
-rw-r--r-- 1 daygeek daygeek  288 Jul 29 19:10 service.sh
-rw-r--r-- 1 daygeek daygeek  296 Aug  4 01:27 servicem.sh
-rw-r--r-- 1 daygeek daygeek  341 Jul 29 19:26 service3.sh
-rw-r--r-- 1 daygeek daygeek  361 Jul 29 19:45 service3a.sh
-rw-r--r-- 1 daygeek daygeek  312 Jul 29 19:38 service2.sh
-rw-r--r-- 1 daygeek daygeek  324 Jul 29 19:37 service2a.sh
-rw-r--r-- 1 daygeek daygeek  157 Jul 29 18:29 service1.sh
-rw-r--r-- 1 daygeek daygeek  177 Jul 29 19:34 service1a.sh
-rw-r--r-- 1 daygeek daygeek  227 Mar 17 12:22 server-list.txt

9)如何使用ls命令在Linux中递归列出目录内容?

缺省情况下,ls命令显示给定目录的内容,而不是子目录的内容。

为此,请使用以下ls命令,可以通过在ls命令中添加-R选项来实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$ ls -lhR
.:
total 280K
-rw-r--r-- 1 daygeek daygeek 4.7K Apr 11 14:57 2g.out
drwxr-xr-x 2 daygeek daygeek 4.0K Aug 16 16:59 backup/
-rw-r--r-- 1 daygeek daygeek   78 Apr 26 11:39 bulk-package-install.sh
-rw-r--r-- 1 daygeek daygeek  764 May 26 15:33 cpu-alert1.sh
-rw-r--r-- 1 daygeek daygeek  616 Jun  2 13:25 cpu-alert2.sh
-rw-r--r-- 1 daygeek daygeek  538 May 25 19:25 cpu-alert.sh
-rwxr-xr-x 1 daygeek daygeek 1.4K Feb  9  2019 cpu-mem-check.sh*
-rw-r--r-- 1 daygeek daygeek  410 Apr 27 23:58 disk-space-alert.sh
-rw-r--r-- 1 daygeek daygeek   99 Jan 19  2019 file-copy.sh
-rwxr-xr-x 1 daygeek daygeek   65 Apr 16 23:23 guna_server.sh*
-rw-r--r-- 1 daygeek daygeek  208 May 24 12:04 jwhois-check.sh
-rw-r--r-- 1 daygeek daygeek  776 Jun 14 12:00 memory-monitor.sh

./backup:
total 32K
-rw-r--r-- 1 daygeek daygeek 177 Aug 16 16:59 service1a.sh
-rw-r--r-- 1 daygeek daygeek 157 Aug 16 16:59 service1.sh
-rw-r--r-- 1 daygeek daygeek 324 Aug 16 16:59 service2a.sh
-rw-r--r-- 1 daygeek daygeek 312 Aug 16 16:58 service2.sh
-rw-r--r-- 1 daygeek daygeek 361 Aug 16 16:58 service3a.sh
-rw-r--r-- 1 daygeek daygeek 341 Aug 16 16:58 service3.sh
-rw-r--r-- 1 daygeek daygeek 296 Aug 16 16:58 servicem.sh
-rw-r--r-- 1 daygeek daygeek 288 Aug 16 16:57 service.sh

10)如何在Linux中使用ls命令根据文件大小对目录内容进行排序?

有时您可能希望清理系统中的大文件,以控制磁盘使用。

为此,首先需要在给定目录中识别大文件,因此,使用以下ls命令,可以通过在ls命令中添加-S选项来实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
$ ls -lhS

total 2.1G
-rwxrwxrwx  1 daygeek daygeek 1.9G Oct 30  2018  manjaro-xfce-18.0-stable-x86_64.iso*
-rw-r--r--  1 daygeek daygeek 100M Jul 29 11:17  100MB.bin
-rwxr-xr-x  1 daygeek daygeek  59M Apr 12  2018  odrive-0.1.3-x86_64.AppImage*
-rw-r--r--  1 daygeek daygeek  14M Jan  3  2019  2daygeek_access.log
-rw-r--r--  1 daygeek daygeek  14M Jan  3  2019  2daygeek.com
-rw-r--r--  1 daygeek daygeek 785K Jan  3  2019  2daygeek.html
-rw-r--r--  1 daygeek daygeek 229K Jan  5  2019  2g-test-05-01-2019.tar.gz
-rw-r--r--  1 daygeek daygeek 137K Apr 18 11:11  fdisk - Easy Way To Manage Disk Partitions In Linux.txt
-rw-r--r--  1 daygeek daygeek 115K Aug  9 22:44  mpv-shot0001.jpg
-rwxr-xr-x  1 daygeek daygeek  88K Nov 27  2018  check-security-updates*

11)如何在Linux中使用ls命令列出具有INODE编号的目录内容?

如果要在ls命令输出中添加索引节点号,请使用以下ls命令。 可以通过在ls命令中添加-i选项来实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ ls -lhi

total 280K
2490942 -rw-r--r-- 1 daygeek daygeek 4.7K Apr 11 14:57 2g.out
2498578 drwxr-xr-x 2 daygeek daygeek 4.0K Aug 16 16:59 backup/
2491025 -rw-r--r-- 1 daygeek daygeek   78 Apr 26 11:39 bulk-package-install.sh
2491272 -rw-r--r-- 1 daygeek daygeek  764 May 26 15:33 cpu-alert1.sh
2491037 -rw-r--r-- 1 daygeek daygeek  616 Jun  2 13:25 cpu-alert2.sh
2491162 -rw-r--r-- 1 daygeek daygeek  538 May 25 19:25 cpu-alert.sh
1744131 -rwxr-xr-x 1 daygeek daygeek 1.4K Feb  9  2019 cpu-mem-check.sh*
2491042 -rw-r--r-- 1 daygeek daygeek  410 Apr 27 23:58 disk-space-alert.sh
1704244 -rw-r--r-- 1 daygeek daygeek   99 Jan 19  2019 file-copy.sh
1710121 -rwxr-xr-x 1 daygeek daygeek   65 Apr 16 23:23 guna_server.sh*
2490519 -rw-r--r-- 1 daygeek daygeek  208 May 24 12:04 jwhois-check.sh
2491694 -rw-r--r-- 1 daygeek daygeek  776 Jun 14 12:00 memory-monitor.sh
2490973 -rwxr-xr-x 1 daygeek daygeek  237 Apr  6 10:40 mysql_backup_1.sh*
2490982 -rwxr-xr-x 1 daygeek daygeek  241 Apr  6 10:49 mysql_backup_2.sh*
2490955 -rwxr-xr-x 1 daygeek daygeek  761 Apr  6 21:36 mysql_backup.sh*

12)如何在Linux中使用ls命令列出具有UID和GID的目录内容?

如果要在ls命令输出中打印UID和GID而不是实际的用户名和组名,请使用以下ls命令。 可以通过在ls命令中添加-n选项来实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ ls -lhn

total 280K
-rw-r--r-- 1 1000 1000 4.7K Apr 11 14:57 2g.out
drwxr-xr-x 2 1000 1000 4.0K Aug 16 16:59 backup/
-rw-r--r-- 1 1000 1000   78 Apr 26 11:39 bulk-package-install.sh
-rw-r--r-- 1 1000 1000  764 May 26 15:33 cpu-alert1.sh
-rw-r--r-- 1 1000 1000  616 Jun  2 13:25 cpu-alert2.sh
-rw-r--r-- 1 1000 1000  538 May 25 19:25 cpu-alert.sh
-rwxr-xr-x 1 1000 1000 1.4K Feb  9  2019 cpu-mem-check.sh*
-rw-r--r-- 1 1000 1000  410 Apr 27 23:58 disk-space-alert.sh
-rw-r--r-- 1 1000 1000   99 Jan 19  2019 file-copy.sh
-rwxr-xr-x 1 1000 1000   65 Apr 16 23:23 guna_server.sh*
-rw-r--r-- 1 1000 1000  208 May 24 12:04 jwhois-check.sh
-rw-r--r-- 1 1000 1000  776 Jun 14 12:00 memory-monitor.sh
-rwxr-xr-x 1 1000 1000  237 Apr  6 10:40 mysql_backup_1.sh*

13)如何使用ls命令在Linux中检查目录权限?

如果要检查给定的目录权限而不是打印其内容,请使用以下ls命令。 可以通过在ls命令中添加-d选项来实现。

1
2
$ ls -ld backup/
drwxr-xr-x 2 daygeek daygeek 4096 Aug 16 16:59 backup/

14)如何在Linux中仅列出给定目录中的隐藏文件和目录?

如果只想打印给定目录中的隐藏文件和目录,请使用以下ls命令。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ ls -ld .*
or
$ ls -ld .?*

drwxr-xr-x  3 root    root     4096 Nov 24  2018 ..
-rw-------  1 daygeek daygeek 13673 Aug  5 02:45 .bash_history
-rw-r--r--  1 daygeek daygeek    21 Jun 14  2018 .bash_logout
-rw-r--r--  1 daygeek daygeek    95 Dec 13  2018 .bash_profile
-rw-r--r--  1 daygeek daygeek  4257 Mar 15 12:05 .bashrc
-rw-r--r--  1 daygeek daygeek  1198 Feb 22 09:52 .betty_history
drwxr-xr-x  3 daygeek daygeek  4096 Jan  6  2019 .bundle
drwx------ 41 daygeek daygeek  4096 Aug 14 12:54 .cache
-rw-------  1 daygeek daygeek    35 Mar 13 12:09 .calc_history
drwxr-xr-x  4 daygeek daygeek  4096 Dec 13  2018 .cargo
-rw-------  1 daygeek daygeek    73 Mar  4 21:13 .clush_history
drwxr-xr-x 49 daygeek daygeek  4096 Aug 14 20:55 .config
drwxr-xr-x  2 daygeek daygeek  4096 Jan  6  2019 .credentials
-rw-r--r--  1 daygeek daygeek  4855 Oct 30  2017 .dir_colors
drwxr-xr-x  2 daygeek daygeek  4096 Jan  6  2019 .drivesync

15)一些有用的Advanced ls命令示例

这些命令不经常使用,它们被视为高级ls命令。

如果只想显示不包括所有其他文件的子目录,请使用以下ls命令。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$ ls -ld */

drwxr-xr-x  2 daygeek daygeek  4096 Jan 20  2019  2g/
drwxrwxrwx  4 daygeek daygeek  4096 Aug  4 01:31  2g-files/
drwxr-xr-x  4 daygeek daygeek  4096 Apr 19 13:25  backup/
drwxr-xr-x  4 daygeek daygeek  4096 Feb 20 17:36  bash-insulter/
drwxr-xr-x  4 daygeek daygeek  4096 Jan 15  2019  batstat/
drwxr-xr-x  6 daygeek daygeek  4096 Feb 20 17:46  betty/
drwxr-xr-x  3 daygeek daygeek  4096 Mar 12 10:34  Desktop/
drwxr-xr-x  6 daygeek daygeek  4096 Aug 15 22:25  Documents/
drwxr-xr-x 12 daygeek daygeek 49152 Aug 16 14:38  Downloads/
drwxr-xr-x  4 daygeek daygeek  4096 Jan  7  2019  drivesync/
drwxr-xr-x  2 daygeek daygeek  4096 Apr 16 11:39  icons/
drwxr-xr-x  3 daygeek daygeek  4096 Apr 20 19:33  install-gnome-themes/
drwxr-xr-x  4 daygeek daygeek  4096 Jun 11 16:46  Music/
drwxr-xr-x  4 daygeek daygeek 20480 Aug 11 01:39  Pictures/
drwxr-xr-x  3 daygeek daygeek  4096 Dec 14  2018  projects/
drwxr-xr-x  2 daygeek daygeek  4096 Nov 24  2018  Public/
drwxr-xr-x  3 daygeek daygeek  4096 Aug 16 16:57  shell-script/
drwxr-xr-x  3 daygeek daygeek  4096 Jan 23  2019  snap/
drwxr-xr-x  4 daygeek daygeek  4096 Jan  6  2019  ssh-audit/
drwxr-xr-x  2 daygeek daygeek  4096 Nov 24  2018  Templates/
drwxr-xr-x  3 daygeek daygeek  4096 Jul 23 11:07  test/
drwxr-xr-x  5 daygeek daygeek  4096 May 30 10:30  Videos/
drwxr-xr-x 12 daygeek daygeek  4096 Jun  9 01:03 'VirtualBox VMs/'
drwxr-xr-x  5 daygeek daygeek  4096 Nov 24  2018  yay/

如果要列出具有完整路径的文件和目录,请使用以下命令。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ ls -ld $PWD/*

-rw-r--r-- 1 daygeek daygeek   4780 Apr 11 14:57 /home/daygeek/shell-script/2g.out
drwxr-xr-x 2 daygeek daygeek   4096 Aug 16 16:59 /home/daygeek/shell-script/backup
-rw-r--r-- 1 daygeek daygeek     78 Apr 26 11:39 /home/daygeek/shell-script/bulk-package-install.sh
-rw-r--r-- 1 daygeek daygeek    764 May 26 15:33 /home/daygeek/shell-script/cpu-alert1.sh
-rw-r--r-- 1 daygeek daygeek    616 Jun  2 13:25 /home/daygeek/shell-script/cpu-alert2.sh
-rw-r--r-- 1 daygeek daygeek    538 May 25 19:25 /home/daygeek/shell-script/cpu-alert.sh
-rwxr-xr-x 1 daygeek daygeek   1361 Feb  9  2019 /home/daygeek/shell-script/cpu-mem-check.sh
-rw-r--r-- 1 daygeek daygeek    410 Apr 27 23:58 /home/daygeek/shell-script/disk-space-alert.sh
-rw-r--r-- 1 daygeek daygeek     99 Jan 19  2019 /home/daygeek/shell-script/file-copy.sh
-rwxr-xr-x 1 daygeek daygeek     65 Apr 16 23:23 /home/daygeek/shell-script/guna_server.sh
-rw-r--r-- 1 daygeek daygeek    208 May 24 12:04 /home/daygeek/shell-script/jwhois-check.sh
-rw-r--r-- 1 daygeek daygeek    776 Jun 14 12:00 /home/daygeek/shell-script/memory-monitor.sh
-rwxr-xr-x 1 daygeek daygeek    237 Apr  6 10:40 /home/daygeek/shell-script/mysql_backup_1.sh

使用以下ls命令来计算当前目录文件和文件夹。

1
2
$ ls -1 | wc -l
36

如果只想显示匹配的patten文件(不包括所有其他文件),请使用以下ls命令。

1
2
3
4
5
6
7
8
$ ls -lh *.pdf

-rw-r--r-- 1 daygeek daygeek  27K Dec 31  2018  1546239866635OjQiL7eDrYlpXATz.pdf
-rw-r--r-- 1 daygeek daygeek  25K Dec 31  2018  1546239936751llSFFHTtLjKI8T6L.pdf
-rw-r--r-- 1 daygeek daygeek  24K Dec 31  2018  1546239980174twt5oFfv7IJBfBgy.pdf
-rw-r--r-- 1 daygeek daygeek  25K Dec 31  2018  1546240021050mOb79g2Gx0rhxR2z.pdf
-rw-r--r-- 1 daygeek daygeek  25K Dec 31  2018  1546240042428lwBc0Y9MGMtnvxlM.pdf
-rw-r--r-- 1 daygeek daygeek  26K Dec 31  2018  1546240058907esahROEworBjMZje.pdf

如果要计算匹配的patten文件,请使用以下ls命令。

1
2
$ ls *.sh | wc -l
31

如何在ls命令输出中附加文件类型指示符。

1
2
3
4
5
6
7
$ ls -F

2daygeek_access.log
2g/
<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="86b4e1abe0efeae3f5c6">[emailprotected]</a>
pipe-test|
cpu-mem-check.sh*

文件类型指示器

  • 常规文件未显示任何内容

  • /表示目录

  • @表示符号链接

  • | 表示一个FIFO

  • *表示可执行文件

  • =表示套接字

  • >表示门

  • 16)如何列出ls命令的所有选项?

    在以上示例中,我添加了最有用的ls命令选项。 如果您正在寻找其他选项,我建议您检查ls命令的手册页。

    另外,我会要求您在我们的评论部分中更新您的评论,如果是的话,我们可以在此方面为您提供帮助。

    1
    2
    3
    $ ls --help
    or
    $ man ls