- 导语
- ls命令
- 用法
- 详细全选项参数解释
- 常用选项的例子
- 小问题
- 如何列出目录中的文件
- 如何只使用echo命令来只列出所有目录
- 怎样列出一个目录中的所有文件 包括隐藏的以开头的文件
- 如何列出目录中除了 当前目录 和父目录 之外的所有文件包括隐藏文件
- 如何使用长格式打印出当前目录内容
- 假如让你来将目录中的内容以长格式列表打印并且显示出隐藏的点文件你会如何实现
- 如何找到每个文件的创建者
- 如何对用转义字符打印出非显示字符
- 用指定特定的单位格式来列出文件和目录的大小你会如何实现
- 列出目录中的文件但是不显示备份文件即那些文件名以结尾的文件
- 将目录中的所有文件按照名称进行排序并显示其最后修改时间信息
- 将目录中的文件按照修改时间进行排序并显示相关联的信息
- 如何控制ls命令的输出颜色的有无
- 假如只需要列出目录本身而不是目录的内容你会如何做
- 为长格式列表命令ls -l创建一个别名ll并将其结果输出到一个文件而不是标准输出中
- 总结
导语
本文将讲述关于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=WORD | across -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个小问题,以便各位的了解。