Linux(3)RedHat7 基本命令二-ls命令详解

导语

本文将讲述关于ls命令的详细解析。

ls命令

用法

ls [选项]... [文件]...
  • ls [-aAdfFhilnrRSt] 目录名称
  • ls [–color={never,auto,always}] 目录名称
  • ls [–full-time] 目录名称

    详细全选项参数解释

    ,逗号隔开的表示隔开的两个命令,具有一样的效果

短选项长选项含义(作用)
-a--all显示全部文件,包括隐藏文件。不隐藏任何以 . 字符开始的项目
-A--almost-all列出除. 及.. 以外的任何项目。–all(-a)选项会覆盖该选项。
--author与-l 同时使用时列出每个文件的作者
-b--escape以八进制溢出序列表示不可打印的字符
--block-size=SIZE在输出之前指定显示大小的单位。比如: '--block-size=M' 输出大小是以1,048,576 bytes为单位,不足的以一单位以一个单位为计算.SIZE可以是以下的单位单位前可加上整数:K=1024bytes,M=1048576bytes,还有 G、T、P、E、Z、Y 如此类推。
-B--ignore-backups不列出任何以 ~ 字符结束的项目。这个选项等于--ignore='~' --ignore='.~'
-c配合 -lt:根据 ctime 排序及显示 ctime (文件状态最后更改的时间)
配合 -l:显示 ctime 但根据名称排序
否则:根据 最新的ctime 排序
-C每栏由上至下列出项目
--color[=WHEN]给输出着色。WHEN 默认是‘always’可以是‘never’、‘auto’,
-d--directory当遇到目录时列出目录本身而非目录内的文件。
-D--dired产生适合 Emacs 的 dired 模式使用的结果
-f不进行排序,-aU 选项生效,-ls --color选项失效
-F--classify加上文件类型的指示符号(*/=>@|其中一个)
--file-type和上面一样,除了不加‘*’
--format=WORDacross -x, commas -m, horizontal -x, long -l,single-column -1, verbose -l, vertical -C
--full-time -l --time-style=full-iso
-g类似-l,但不列出所有者
--group-directories-first在文件前分组目录。此选项可与--sort一起使用,但是一旦使用--sort=none (-U)将禁用分组
-G--no-group以一个长列表的形式,不输出组名
-h--human-readable与-l 一起,以易于阅读的格式输出文件大小(例如 1K 234M 2G)
--si同上面类似,但是使用1000 为基底而非1024
-H--dereference-command-line跟随命令行列出的符号链接
--dereference-command-line-symlink-to-dir跟随命令行列出的目录的符号链接
--hide=PATTERN隐藏符合PATTERN 模式的项目
(-a 或 -A 将覆盖此选项)
--indicator-style=WORD指定在每个项目名称后加上指示WORD:none (默认), slash (-p),file-type (--file-type), classify (-F)
-i--inode显示每个文件的 inode 号
-I--ignore=PATTERN不打印出任何符合 shell PATTERN(样式)的隐含项目
-k--kibibytes 默认为1024字节块磁盘使用情况
-l使用较长格式列出信息
-L--dereference当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息
-m所有项目以逗号分隔,并填满整行行宽
-n--numeric-uid-gid类似 -l,但列出UID 及GID 号
-N--literal输出未经处理的项目名称 (如不特别处理控制字符)
-o类似 -l,但不列出有关组的信息
-p --indicator-style=slash对目录加上表示符号”/”
-q--hide-control-chars以 ? 字符代替无法打印的字符
--show-control-chars 按原样显示非图形字符(这是默认方式,除非调用的程序名称是‘ls’而且是在终端机画面输出结果)
-Q--quote-name将项目名称括上双引号
--quoting-style=WORD使用指定的 引用风格的WORD显示项目的名称:literal、locale、shell、shell-always、c、escape
-r--reverse逆序排列
-R--recursive递归显示子目录
-s--size以块数形式显示每个文件分配的尺寸
-S根据文件大小排序
--sort=WORD以下是可选用的WORD 和它们代表的相应选项:
这里写图片描述
--time=WORD和-l 同时使用时显示WORD 所代表的时间而非修改时间:atime、access、use、ctime 或status;加--sort=time选项时会以指定时间作为排序关键字
--time-style=STYLE和-l 同时使用时显示STYLE风格的时间: full-iso, long-iso, iso, locale, +FORMAT。FORMAT的解释类似于’date’命令,如果FORMAT是FORMAT1< newline>FORMAT2,FORMAT1应用于非最近的文件, FORMAT2 应用于最近的文件。如果STYLE被’posix-‘所修饰,STYLE仅在POSIX之外的区域生效。
-t以最新的修改时间排序
-T--tabsize=COLS指定制表符(Tab)的宽度。缺省为 8
-u-lt一起使用:按照访问时间排序并显示
-l一起使用:显示访问时间并按文件名排序
其他:按照访问时间排序
-U不进行排序;按照目录顺序列出项目
-v在文本中进行数字(版本)的自然排序
-w--width=COLS自行指定萤幕宽度而不使用目前的数值
-x逐行列出项目而不是逐栏列出
-X根据扩展名排序
-1每行只列出一个文件
--help显示此帮助信息并退出
--version显示版本信息并退出

备注

SIZE 是 一个整型可选单位(比如: 10M is 10*1024*1024). 单位是
are K, M, G, T, P, E, Z, Y (1024的幂) or KB, MB, … (1000的幂)。

使用色彩来区分文件类型的功能已被禁用,默认设置和 –color=never 同时禁用了它。
使用 –color=auto 选项,ls 只在标准输出被连至终端时才生成颜色代码。
LS_COLORS 环境变量可改变此设置,可使用 dircolors 命令来设置。

退出状态:

  • 0 正常
  • 1 一般问题 (例如:无法访问子文件夹)
  • 2 严重问题 (例如:无法使用命令行参数)

常用选项的例子

单选项

-l 选项

显示文件的形态、权限、拥有者、文件大小、最后修改时间、文件的完整名称(文件名+扩展名)。显示格式是每一行显示一个文件或者目录。

这里写图片描述

上面显示的是当前目录下的内容,如果显示某个深层子目录中的内容,同样可以。例如,当前工作目录为/home/tqw/,想要显示/etc/init.d/下的内容:

这里写图片描述

-R 选项

递归显示子目录

这里写图片描述

-t 选项

按照时间顺序列出文件及其目录。

这里写图片描述

-a 选项

显示指定目录下所有的文件以及目录,同时也列出所有以“.”开头的隐藏文件。

这里写图片描述

-d 选项

仅列出目录本身,而不是列出目录内的档案数据(常用)
这里写图片描述

-p 选项

对于目录,则显示格式形如“tqw/”的形式。
这里写图片描述

组合选项

-al

长串显示数据内容,以及将隐藏档也一起列示出来
这里写图片描述

-al --full-time

完整的呈现档案的修改时间 *(modification time)
这里写图片描述

ls相关的别名命令

这里写图片描述

ll命令

这里写图片描述

小问题

为什么有的目录文件有不同的颜色呢?

linux系统中不同的颜色代表了不同的文件类型
这里写图片描述

下面是引用别处认为比较不错的问题。

如何列出目录中的文件?

答:linux文件列表命令“ls”就是干这个的。

ls

这里写图片描述

同时,我们也可以使用“echo(回显)”命令与一个通配符(*)参数来列出目录中的所有文件。
这里写图片描述

如何只使用echo命令来只列出所有目录?

echo */

这里写图片描述

怎样列出一个目录中的所有文件, 包括隐藏的以“.”开头的文件?

答:我们需要将“-a”选项与“ls”命令一起使用。

ls -a

这里写图片描述

如何列出目录中除了 “当前目录 .”和“父目录 ..”之外的所有文件,包括隐藏文件?

答: 我们需要将“-A”选项与“ls”命令一起使用

ls -A

这里写图片描述

如何使用长格式打印出当前目录内容?

答: 我们需要将“-l”选项与“ls”命令一起使用。

ls -l

这里写图片描述

假如让你来将目录中的内容以长格式列表打印,并且显示出隐藏的“点文件”,你会如何实现?

答: 我们需要同时将”-a”和”-l”选项与“ls”命令一起使用(LCTT 译注:单字符选项可以合并写)。

ls -la

这里写图片描述
此外,如果我们不想列出“当前目录”和”父目录”,可以将“-A”和“-l”选项同“ls”命令一起使用。

ls -lA

如何找到每个文件的创建者?

答: 我们需要结合 “–author”和 “-l”选项来打印出每个文件的创建者。

ls --author -l

这里写图片描述

如何对用转义字符打印出非显示字符?

答:我们只需要使用“-b”选项来对非显示字符进行转义打印

ls -b

这里写图片描述

用指定特定的单位格式来列出文件和目录的大小,你会如何实现?

答: 在此可以同时使用选项“-block-size=scale”和“-l”,但是我们需要用特定的单位如M,K等来替换‘scale’参数。

ls --block-size=M -l
ls --block-size=K -l

这里写图片描述

列出目录中的文件,但是不显示备份文件,即那些文件名以‘~’结尾的文件

答: 选项‘-B’赶来救驾。

ls -B

这里写图片描述

将目录中的所有文件按照名称进行排序,并显示其最后修改时间信息?

答: 为了实现这个需求,我们需要同时将“-c”和”-l”选项与命令一起使用。

ls -cl

这里写图片描述

将目录中的文件按照修改时间进行排序,并显示相关联的信息。

答: 我们需要同时使用3个选项:’-l’,’-t’,’-c’ 来对文件使用修改时间排序,最新的修改时间排在最前。

ls -ltc

这里写图片描述

如何控制‘ls’命令的输出颜色的有无?

答: 需要使用选项‘–color=parameter’,参数具有三种不同值,“auto(自动)”,“always(一直)”,“never(无色)”。

    ls --color=never
    ls --color=auto
    ls --color=always

这里写图片描述

假如只需要列出目录本身,而不是目录的内容,你会如何做?

答:在此“-d”选项就会显得很顺手。

ls -d

这里写图片描述

为长格式列表命令”ls -l”创建一个别名“ll”,并将其结果输出到一个文件而不是标准输出中。

答:在上述的这个场景中,我们需要将别名添加到.bashrc文件中,然后使用重定向操作符将输出写入到文件而不是标准输出中。我们将会使用编辑器nano。

ls -a
nano .bashrc
ll >> ll.txt
nano ll.txt

这里写图片描述

总结

本文讲述了ls命令的命令的选项的全部定义,并列举了常用选项以及别名选项的用例,而且增加15个小问题,以便各位的了解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YuYunTan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值