ls 列出文件或目录下的文件名

语法:ls   [选项]   目录路径 

参数说明:

短选项 长选项 含义
-a -all 显示全部文件,包括隐藏文件。不隐藏任何以 . 字符开始的项目
-A –almost-all 列出除了 . 及 .. 以外的任何项目
–author 与-l 同时使用时列出每个文件的作者
-b –escape 以八进制溢出序列表示不可打印的字符
–block-size=大小 块以指定<大小>的字节为单位
-B –ignore-backups 不列出任何以 ~ 字符结束的项目
-c 配合 -lt:根据 ctime 排序及显示 ctime (文件状态最后更改的时间)
配合 -l:显示 ctime 但根据名称排序
否则:根据 ctime 排序
-C 每栏由上至下列出项目
–color[=WHEN] 控制是否使用色彩分辨文件。WHEN 可以是‘never’、‘always’或‘auto’其中之一
-d –directory 当遇到目录时列出目录本身而非目录内的文件
-D –dired 产生适合 Emacs 的 dired 模式使用的结果
-f 不进行排序,-aU 选项生效,-lst 选项失效
-F –classify 加上文件类型的指示符号 (*/=@| 其中一个)
–format=关键字 across -x,commas -m,horizontal -x,long -l,single-column -1,verbose -l,vertical -C
–full-time 即 -l –time-style=full-iso
-g 类似 -l,但不列出所有者
-G –no-group 不列出任何有关组的信息
-h –human-readable 以容易理解的格式印出文件大小 (例如 1K 234M 2G)
–si 类似 -h,但取 1000 的次方而不是 1024
-H –dereference-command-line 使用命令列中的符号链接指示的真正目的地
–indicator-style=方式 指定在每个项目名称后加上指示符号<方式>:none (默认),classify (-F),file-type (-p)
-i –inode 显示每个文件的 inode 号
-I –ignore=样式 不印出任何符合 shell 万用字符<样式>的项目
-k 即 –block-size=1K
-l 使用较长格式列出信息
-L –dereference 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息
-m 所有项目以逗号分隔,并填满整行行宽
-n –numeric-uid-gid 类似 -l,但列出 UID 及 GID 号
-N –literal 输出未经处理的项目名称 (如不特别处理控制字符)
-o 类似 -l,但不列出有关组的信息
-p –file-type 加上文件类型的指示符号 (/=@| 其中一个)
-q –hide-control-chars 以 ? 字符代替无法打印的字符
–show-control-chars 直接显示无法打印的字符 (这是默认方式,除非调用的程序名称是‘ls’而且是在终端机画面输出结果)
-Q –quote-name 将项目名称括上双引号
–quoting-style=方式 使用指定的 quoting <方式>显示项目的名称:literal、locale、shell、shell-always、c、escape
-r –reverse 依相反次序排列
-R –recursive 同时列出所有子目录层
-s –size 以块大小为单位列出所有文件的大小
-S 根据文件大小排序
–sort=WORD 以下是可选用的 WORD 和它们代表的相应选项:
extension -X       status   -c
none      -U       time     -t
size      -S       atime    -u
time      -t       access   -u
version   -v       use      -u
-t 以时间排序
-T –tabsize=COLS 指定制表符(Tab)的宽度。缺省为 8
-u 同-lt 一起使用:按照访问时间排序并显示
同-l一起使用:显示访问时间并按文件名排序
其他:按照访问时间排序
-U 不进行排序;依文件系统原有的次序列出项目
-v 根据版本进行排序
-w –width=COLS 自行指定萤幕宽度而不使用目前的数值
-x 逐行列出项目而不是逐栏列出
-X 根据扩展名排序
-1 每行只列出一个文件

 

<大小>可以是以下的单位 (单位前可加上整数):kB=1000,K=1024,MB=1000000,M=1048576,还有 G、T、P、E、Z、Y 如此类推。

默认是不会使用色彩来区别文件的。此方式等於使用了 –color=none 选项。若使用–color 选项但不指定 WHEN 参数等於 –color=always。当使用 –color=auto 时,只当输出至终端机画面 (tty) 时才会显示色彩。

若ls没有颜色显示,你可编辑/etc/bashrc 或目录下的 .bashrc ,加入下列指令:alias ls=’ls -F -N –color=auto’   或  alias ls=”ls –color” 要立即生效的話,則執行下列命令:source /etc/bashrc  或 source .bashrc

 

只列出子目录
ls -F | grep /$   
ls -l | grep "^d" 
 
 
计算当前目录下的文件数和目录数
ls -l * |grep "^-"|wc -l ---- to count files 
ls -l * |grep "^d"|wc -l ----- to count dir 

 

linux文件属性详解

Linux 文件或目录的属性主要包括:文件或目录的节点、种类、权限模式、链接数量、所归属的用户和用户组、最近访问或修改的时间等内容。

[root@localhost test]# ls -lih 
总计 316K 
2095120 lrwxrwxrwx 1 root root   11 11-22 06:58 linklog.log -> log2012.log 
2095112 -rw-r--r-- 1 root root 296K 11-13 06:03 log2012.log 
2095110 -rw-r--r-- 1 root root   61 11-13 06:03 log2013.log 
2095107 -rw-r--r-- 1 root root    0 11-13 06:03 log2014.log 
2095117 -rw-r--r-- 1 root root    0 11-13 06:06 log2015.log 
  • 第一列:inode 译成中文就是索引节点。每个存储设备或存储设备的分区(存储设备是硬盘、软盘、U盘等等)被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数 据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令, 能通过inode值最快的找到相对应的文件。
  • 第二列:文件种类和权限;
  • 第三列:硬链接个数;
  • 第四列:属主;
  • 第五列:所归属的组;
  • 第六列:文件或目录的大小;
  • 第七列和第八列:最后访问或修改时间;
  • 第九列:文件名或目录名

以log2012.log为例:
2095112 -rw-r–r– 1 root root 296K 11-13 06:03 log2012.log

inode 的值是:2095112
文件类型:文件类型是-,表示这是一个普通文件; 关于文件的类型,请参考:每天一个linux命令(24):Linux文件类型与扩展名
文件权限:文件权限是rw-r–r– ,表示文件属主可读、可写、不可执行,文件所归属的用户组不可写,可读,不可执行,其它用户不可写,可读,不可执行;
硬链接个数: log2012.log这个文件没有硬链接;因为数值是1,就是他本身;
文件属主:也就是这个文件归哪于哪个用户 ,它归于root,也就是第一个root;
文件属组:也就是说,对于这个文件,它归属于哪个用户组,在这里是root用户组;
文件大小:文件大小是296k个字节;
访问可修改时间 :这里的时间是最后访问的时间,最后访问和文件被修改或创建的时间,有时并不是一致的;

实例

 

-l 选项

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

ls 列出文件或目录下的文件名

上面显示的是当前目录下的内容,如果显示某个深层子目录中的内容,同样可以。例如,当前工作目录为/home/shirdrn/temp,想要显示/home/shirdrn/temp/c下的内容,
ls 列出文件或目录下的文件名

 

-R 选项

与-l相似,只是不显示出文件的所有者。

ls 列出文件或目录下的文件名

 

-t 选项

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

ls 列出文件或目录下的文件名

 

-a 选项

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

ls 列出文件或目录下的文件名

 

-A 选项

与-a很相似,显示指定目录下所有的文件以及目录,但是并不列出所有以“.”开头的隐藏文件。

ls 列出文件或目录下的文件名

 

-c 选项

文件及其目录是以英文字母序列出,文件在前,目录在后。

ls 列出文件或目录下的文件名

 

-r 选项

正常情况下(使用-c选项)文件是以英文字母序列出,使用-r选项后,以英文字母反序显示。

ls 列出文件或目录下的文件名

 

-R 选项

如果列出的目录中仍有子目录或者文件,将所有目录下面的文件都显示出来。

ls 列出文件或目录下的文件名

 

-si 选项

显示指定目录中文件以及目录的名称,包括他们的大小。

ls 列出文件或目录下的文件名

 

-s 选项

按照文件及其目录的大小只显示文件以及目录名称。

ls 列出文件或目录下的文件名

 

-q 和-Q 选项

-q按照正常显示,只显示文件以及目录名称,-Q为每个文件以及目录的名称加上双引号。

ls 列出文件或目录下的文件名

 

-p 选项

对于目录,则显示格式形如“mydir/”的形式。

ls 列出文件或目录下的文件名

 

选项组合

可以使用各个选项的组合,得到更加适合自己需要的选项。

选项组合有两种格式,例如下面两种组合执行后是一样的:
ls -l -p
ls -lp

ls 列出文件或目录下的文件名

 

ll 是ls -l的别名

ll -t 是降序, ll -t | tac 是升序