Unix LS 命令:15 个实际示例

Tiamo_T 发表于 2021/08/08 00:28:06 2021/08/08
【摘要】 ls – Unix 用户和系统管理员离不开这两个字母的命令。无论您每天使用 10 次还是每天使用 100 次,了解 ls 命令的强大功能都可以让您的命令行之旅变得愉快。在本文中,让我们回顾一下强大的 ls 命令的 15 个实际示例。1. 使用 ls -t 打开上次编辑的文件要打开当前目录中最后编辑的文件,请使用 ls、head 和 vi 命令的组合,如下所示。ls -t按修改时间对文件进行排...

ls – Unix 用户和系统管理员离不开这两个字母的命令。无论您每天使用 10 次还是每天使用 100 次,了解 ls 命令的强大功能都可以让您的命令行之旅变得愉快。

在本文中,让我们回顾一下强大的 ls 命令的 15 个实际示例。


1. 使用 ls -t 打开上次编辑的文件

要打开当前目录中最后编辑的文件,请使用 ls、head 和 vi 命令的组合,如下所示。

ls -t按修改时间对文件进行排序,首先显示最后编辑的文件。head -1拾取第一个文件。

$ vi first-long-file.txt
$ vi second-long-file.txt

$ vi `ls -t | head -1`
[Note: This will open the last file you edited (i.e second-long-file.txt)]

2. 使用 ls -1 每行显示一个文件

要显示每行单个条目,请使用 -1 选项,如下所示。

$ ls -1
bin
boot
cdrom
dev
etc
home
initrd
initrd.img
lib

3. 使用 ls -l 显示有关文件/目录的所有信息

显示有关文件/目录的长列表信息。


$ ls -l
-rw-r----- 1 ramesh team-dev 9275204 6 月 13 日 15:27 mthesaur.txt.gz
  • 第一个字符 - 文件类型:第一个字符指定文件的类型。
    在上面的示例中,第一个字符中的连字符 (-) 表示这是一个普通文件。以下是 ls -l 输出的第一个字符中可能的文件类型选项。


    • 字段说明
    • – 普通文件
    • 目录
    • s 套接字文件
    • l 链接文件
  • 字段 1 – 文件权限:接下来的 9 个字符指定文件权限。每3个字符分别代表用户、组和世界的读、写、执行权限。本例中-rw-r——表示用户有读写权限,组有读权限,其他人无权限。
  • 字段 2 – 链接数:第二个字段指定该文件的链接数。在本例中,1 表示该文件只有一个链接。
  • 字段 3 –所有者:第三个字段指定文件的所有者。在这个例子中,这个文件归用户名“ramesh”所有。
  • 字段 4 – 组:第四个字段指定文件的组。在这个例子中,这个文件属于“team-dev”组。
  • 字段 5 – 大小:第五个字段指定文件的大小。在本例中,“9275204”表示文件大小。
  • 字段 6 – 上次修改日期和时间:第六个字段指定上次修改文件的日期和时间。在本例中,'Jun 13 15:27' 指定文件的最后修改时间。
  • 字段 7 – 文件名:最后一个字段是文件名。在本例中,文件名为 mthesaur.txt.gz。

4. 使用 ls -lh 以人类可读的格式显示文件大小

使用ls -lh(h 代表人类可读格式),以易于阅读的格式显示文件大小。即 M 代表 MB,K 代表 KB,G 代表 GB。

$ ls -l
-rw-r----- 1 ramesh team-dev 9275204 Jun 12 15:27 arch-linux.txt.gz*

$ ls -lh
-rw-r----- 1 ramesh team-dev 8.9M Jun 12 15:27 arch-linux.txt.gz

5. 使用 ls -ld 显示目录信息

当您使用“ls -l”时,您将获得目录内容的详细信息。但是如果你想要目录的详细信息,那么你可以使用 -d 选项作为。例如,如果你使用 ls -l /etc 将显示 etc 目录下的所有文件。但是,如果要显示有关 /etc/ 目录的信息,请使用 -ld 选项,如下所示。

$ ls -l /etc
total 3344
-rw-r--r--   1 root root   15276 Oct  5  2020 a2ps.cfg
-rw-r--r--   1 root root    2562 Oct  5  2020 a2ps-site.cfg
drwxr-xr-x   4 root root    4096 Feb  2  2020 acpi
-rw-r--r--   1 root root      48 Feb  8  2020 adjtime
drwxr-xr-x   4 root root    4096 Feb  2  2020 alchemist

$ ls -ld /etc
drwxr-xr-x 21 root root 4096 Jun 15 07:02 /etc

6. 使用 ls -lt 根据上次修改时间订购文件

要按上次修改时间的顺序对显示的文件名进行排序,请使用 -t 选项。您会发现将它与 -l 选项结合使用会很方便。

$ ls -lt
total 76
drwxrwxrwt  14 root root  4096 Jun 22 07:36 tmp
drwxr-xr-x 121 root root  4096 Jun 22 07:05 etc
drwxr-xr-x  13 root root 13780 Jun 22 07:04 dev
drwxr-xr-x  13 root root  4096 Jun 20 23:12 root
drwxr-xr-x  12 root root  4096 Jun 18 08:31 home
drwxr-xr-x   2 root root  4096 May 17 21:21 sbin
lrwxrwxrwx   1 root root    11 May 17 20:29 cdrom -> media/cdrom
drwx------   2 root root 16384 May 17 20:29 lost+found

7. 使用 ls -ltr 根据上次修改时间(以相反顺序)订购文件

将上次修改时间的文件名倒序排列。这将在最后一行显示最后编辑的文件,这在列表超出页面时会很方便。这是我的默认 ls 用法。每当我做 ls 时,我总是使用 ls -ltr,因为我觉得这很方便。

$ ls -ltr

total 76
drwxr-xr-x  15 root root  4096 Jul  2  2020 var
drwx------   2 root root 16384 May 17 20:29 lost+found
lrwxrwxrwx   1 root root    11 May 17 20:29 cdrom -> media/cdrom
drwxr-xr-x   2 root root  4096 May 17 21:21 sbin
drwxr-xr-x  12 root root  4096 Jun 18 08:31 home
drwxr-xr-x  13 root root  4096 Jun 20 23:12 root
drwxr-xr-x  13 root root 13780 Jun 22 07:04 dev
drwxr-xr-x 121 root root  4096 Jun 22 07:05 etc
drwxrwxrwt  14 root root  4096 Jun 22 07:36 tmp

8. 使用 ls -a(或)ls -A 显示隐藏文件

要显示目录中的所有隐藏文件,请使用“-a 选项”。Unix 中的隐藏文件以“.”开头 在其文件名中。

$ ls -a
[rnatarajan@asp-dev ~]$ ls -a
. Debian-Info.txt
.. CentOS-Info.txt
.bash_history Fedora-Info.txt
.bash_logout .lftp
.bash_profile libiconv-1.11.tar.tar
.bashrc libssh2-0.12-1.2.el4.rf.i386.rpm

它将显示包括“.”在内的所有文件。(当前目录)和“..”(父目录)。显示隐藏文件,但不显示“.” (当前目录)和“..”(父目录),使用选项 -A。

$ ls -A
Debian-Info.txt               Fedora-Info.txt
CentOS-Info.txt               Red-Hat-Info.txt
.bash_history                 SUSE-Info.txt
.bash_logout                  .lftp
.bash_profile                 libiconv-1.11.tar.tar
.bashrc                       libssh2-0.12-1.2.el4.rf.i386.rpm
[Note: . and .. are not displayed here]

9. 使用 ls -R 递归显示文件

$ ls  /etc/sysconfig/networking
devices  profiles

$ ls  -R /etc/sysconfig/networking
/etc/sysconfig/networking:
devices  profiles

/etc/sysconfig/networking/devices:

/etc/sysconfig/networking/profiles:
default

/etc/sysconfig/networking/profiles/default:

要递归显示所有文件,请使用 -R 选项。当您从 / 执行此操作时,它会递归显示整个文件系统中的所有未隐藏文件。

10. 使用 ls -i 显示文件 inode 编号

有时您可能想知道内部维护文件的 inone 编号。使用 -i 选项如下所示显示一个数字。使用 inode number 您可以删除名称中包含特殊字符的文件,如find 命令文章的example#6 中所述

$ ls -i /etc/xinetd.d/
279694 chargen      279724 cups-lpd  279697 daytime-udp
279695 chargen-udp  279696 daytime   279698 echo

11. 使用 ls -q 隐藏控制字符

要打印问号而不是非图形控制字符,请使用 -q 选项。

ls -q

12. 使用 ls -n 显示文件 UID 和 GID

像 -l 一样列出输出,但以数字格式而不是名称显示 uid 和 gid。

$ ls -l ~/.bash_profile
-rw-r--r--  1 ramesh ramesh 909 Feb  8 11:48 /home/ramesh/.bash_profile
$ ls -n ~/.bash_profile
-rw-r--r--  1 511 511 909 Feb  8 11:48 /home/ramesh/.bash_profile

[Note: This display 511 for uid and 511 for gid]

13. 使用 ls -F 对带有特殊字符的文件进行可视化分类

而不是执行 'ls -l' 然后检查第一个字符以确定文件的类型。您可以使用 -F 对不同类型的文件使用不同的特殊字符对文件进行分类。

$ ls -F
Desktop/  Documents/  Ubuntu-App@  firstfile  Music/  Public/  Templates/

因此在上面的输出中,

  • / - 目录。
  • 没有 - 普通文件。
  • @ - 链接文件。
  • * – 可执行文件

14.使用 ls -F对带有颜色的文件进行视觉分类

通过显示文件的颜色来识别文件类型是文件分类中的另一种。上述输出目录以蓝色显示,软链接以绿色显示,普通文件以默认颜色显示。

$ ls --color=auto
Desktop  Documents Examples firstfile Music  Pictures  Public  Templates  Videos

15. 有用的 ls 命令别名

您可以在上面使用一些必需的 ls 选项,并将其设为别名。我们建议如下。

  • 以人类可理解的形式长列出文件大小。
  • alias ll="ls -lh"
  • 通过附加特殊字符对文件类型进行分类。
    alias lv="ls -F"
  • 按颜色和特殊字符对文件类型进行分类。
    alias ls="ls -F --color=auto"
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。