Linux命令之 ls命令

warning: 这篇文章距离上次修改已过1414天,其中的内容可能已经有所变动。

ls命令用于列出当前目录下的文件和子目录(若给出指定目录则列出指定目录下的文件和子目录)。同时可以展现文件和目录的相关属性(需加参数)。

PS:以.开头的文件或目录为隐藏属性,默认不显示。

ls 命令图解ls 命令图解


命令语法

ls [选项] [目录名]

附加参数

参数说明
-a–all 列出目录下的所有文件,包括以 . 开头的隐含文件
-A同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录)
-c配合 -lt:根据 ctime 排序及显示 ctime (文件状态最后更改的时间)配合 -l:显示 ctime 但根据名称排序否则:根据 ctime 排序
-C每栏由上至下列出项目
–color[=WHEN]控制是否使用色彩分辨文件。WHEN 可以是'never'、'always'或'auto'其中之一
-d–directory 将目录象文件一样显示,而不是显示其下的文件
-D–dired 产生适合 Emacs 的 dired 模式使用的结果
-f对输出的文件不进行排序,-aU 选项生效,-lst 选项失效
-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,以 k 字节的形式表示文件的大小
-l除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
-L–dereference 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息
-m所有项目以逗号分隔,并填满整行行宽
-o类似 -l,显示文件的除组信息外的详细信息
-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以文件修改时间排序
-u配合 -lt:显示访问时间而且依访问时间排序,配合 -l:显示访问时间但根据名称排序,否则:根据访问时间排序
-U不进行排序;依文件系统原有的次序列出项目
-v根据版本进行排序
-w–width=COLS 自行指定屏幕宽度而不使用目前的数值
-x逐行列出项目而不是逐栏列出
-X根据扩展名排序
-1每行只列出一个文件
–help显示此帮助信息并离开
–version显示版本信息并离开

常用范例

列出指定文件夹下的所有文件和目录的详细资料

ls -l -R /home

列出/home文件夹下的所有文件和目录的详细资料列出/home文件夹下的所有文件和目录的详细资料


列出当前目录中所有以“D”开头的目录的详细内容

ls -l D*

列出当前目录中所有以“D”开头的目录的详细内容列出当前目录中所有以“D”开头的目录的详细内容


只列出文件下的子目录

ls -F /opt |grep /$
ls -l /opt | grep "^d"

只列出文件下的子目录只列出文件下的子目录


列出目前工作目录下所有名称是“e”开头的档案,愈新的排愈后面

ls -ltr e*

列出目前工作目录下所有名称是“e”开头的档案,愈新的排愈后面列出目前工作目录下所有名称是“e”开头的档案,愈新的排愈后面


列出目前工作目录下所有档案及目录

  • 目录于名称后加"/";
  • 可执行档于名称后加"*";
ls -AF

列出目前工作目录下所有档案及目录列出目前工作目录下所有档案及目录


计算当前目录下的文件数和目录数

ls -l * |grep "^-"|wc -l #文件个数
ls -l * |grep "^d"|wc -l #目录个数

计算当前目录下的文件数和目录数计算当前目录下的文件数和目录数


在ls中列出文件的绝对路径

ls | sed "s:^:`pwd`/:"

在ls中列出文件的绝对路径在ls中列出文件的绝对路径


列出当前目录下的所有文件(包括隐藏文件)的绝对路径, 对目录不做递归

find $PWD -maxdepth 1 | xargs ls -ld

列出当前目录下的所有文件(包括隐藏文件)的绝对路径, 对目录不做递归列出当前目录下的所有文件(包括隐藏文件)的绝对路径, 对目录不做递归


递归列出当前目录下的所有文件(包括隐藏文件)的绝对路径

find $PWD | xargs ls -ld

指定文件时间输出格式

ls -tl --time-style=full-iso

指定文件时间输出格式指定文件时间输出格式


显示彩色目录列表

显示彩色目录列表,实际上是设置命令别名

#打开/etc/bashrc, 加入如下一行:
alias ls="ls --color"

下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的含义如下:

  1. 蓝色-->目录
  2. 绿色-->可执行文件
  3. 红色-->压缩文件
  4. 浅蓝色-->链接文件
  5. 灰色-->其他文件
评论已关闭