Unix LS 命令:15 个实际示例
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"
- 点赞
- 收藏
- 关注作者
评论(0)