ls命令是linux下最常用的命令。ls命令就是list的缩写,缺省下ls用来打印出当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单。通过ls命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限),查看目录信息等等。ls 命令在日常的linux操作中用的很多!
1. 命令格式:
ls [选项] [目录名]
用法:ls [选项]... [文件]...
列出 FILE 的信息(默认为当前目录)。
如果不指定-cftuvSUX 或--sort 选项,则根据字母大小排序。
2. 命令功能:
列出目标目录中所有的子目录和文件。
3. 常用参数:
-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=关键字 交错-x,逗号分隔-m,水平-x,长-l,
单栏-1,详细-l,垂直-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=方式 指定在每个项目名称后加上指示符号方式:
none (默认),classify (-F),file-type (-p)
-i, --inode 显示每个文件的inode 号
-I, --ignore=PATTERN 不显示任何符合指定shell PATTERN 的项目
-k 即--block-size=1K
-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=方式 使用指定的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
--time=WORD 和-l 同时使用时显示WORD 所代表的时间而非修改时
间:atime、access、use、ctime 或status;加上
--sort=time 选项时会以指定时间作为排序关键字
--time-style=STYLE 和-l 同时使用时根据STYLE 代表的格式显示时间:
full-iso、iso、locale、posix-iso、+FORMAT。
FORMAT 即是"date"所用的时间格式;如果FORMAT
是FORMAT1<换行>FORMAT2,FORMAT1 适用于较旧
的文件而FORMAT2 适用于较新的文件;如果STYLE
以"posix-"开头,则STYLE 仅在POSIX 语系之外
生效。
-t 根据修改时间排序
-T, --tabsize=宽度 指定制表符(Tab)的宽度,而非8 个字符
-t 按修改时间排序
-T, --tabsize=COLS 指定制表符(Tab)的宽度,而非8个字符
-u 同-lt 一起使用:按照访问时间排序并显示
同-l一起使用:显示访问时间并按文件名排序
其他:按照访问时间排序
-U 不进行排序;按照目录顺序列出项目
-v 在文本中进行数字(版本)的自然排序
-w, --width=COLS assume screen width instead of current value
-x list entries by lines instead of by columns
-X sort alphabetically by entry extension
-1 list one file per line
SELinux options:
--lcontext Display security context. Enable -l. Lines
will probably be too wide for most displays.
-Z, --context Display security context so it fits on most
displays. Displays only mode, user, group,
security context and file name.
--scontext Display only security context and file name.
--help 显示此帮助信息并退出
--version 显示版本信息并退出
SIZE 可以是一个可选的整数,后面跟着以下单位中的一个:
KB 1000,K 1024,MB 1000*1000,M 1024*1024,还有 G、T、P、E、Z、Y。
使用色彩来区分文件类型的功能已被禁用,默认设置和 --color=never 同时禁用了它。
使用 --color=auto 选项,ls 只在标准输出被连至终端时才生成颜色代码。
LS_COLORS 环境变量可改变此设置,可使用 dircolors 命令来设置。
退出状态:
0 正常
1 一般问题 (例如:无法访问子文件夹)
2 严重问题 (例如:无法使用命令行参数)
4.常用示例
&&后面即表示后面命令和前面命令执行结果一致
一:命令:ls &&ls ./ &&ls -A ./ 列出当前目录中所有的子目录和文件。此命令后面省略的参数选项和目录,表示按默认方式显示我们所在目录下的所有文件和文件夹假如在root用户的用户目录下面则表示显示root文件夹下面的所有文件和文件夹 在使用ls命令时要注意命令的格式:在命令提示符后,首先是命令的关键字(ls),接下来是命令参数,在命令参数之前要有一短横线“-”,所有的命令参数都有特定的作用,自己可以根据需要选用一个或者多个参数,在命令参数的后面是命令的操作对象。
二:命令:ls -l &&ll &&ls -l ./
列出当前目录下详细信息所有文件和目录
三:命令:ls -l -R /tmp &&ls -lR /tmp
这条命令的作用呢 是查看tmp目录下的
这也是常用命令之一吧,例如我们想查看我们在其他目录下面下面的文件,并复制过来 不用切换目录即可 常和cp /tmp/test.tar.gz ./共同使用。在这条命令中,使用到了两个参数,分别为“l”和“R”,当然,你也可以把他们放在一起使用(-l -R可以写成-lR)
四:命令:ls -l ./ /tmp
显示当前目录下面 和tmp目录下面的所有目录和文件。ls后面也可以跟多个目录,同事查看目录下的内容
五:命令:ls -l t* 列出当前目录中所有以“t”开头的目录或者文件的详细内容。其实,在命令格式中,方括号内的内容都是可以省略的,对于命令ls而言,如果省略命令参数和操作对象,直接输入“ ls ”,则将会列出当前工作目录的内容清单,即命令一
六:命令:ls -F /tmp |grep / && ls -F /tmp |grep /$
列出 /tmp 目录下面的子目录
命令:ls -l /tmp | grep "^d"
列出 /tmp 文件下面的子目录详细情况
七:命令:ls -ltr t*
列出目前工作目录下所有名称是s 开头的文件,愈新的排愈后面。此状态下面我们可以查看我们最近新建的文件的先后,方便查找修改
八:命令:ls -AF
列出目前工作目录下所有档案及目录;目录于名称后加"/", 可执行档于名称后加"*" 。且显示出. ..之外的任何项目
九:命令:
ls -l * |grep "^-"|wc -l ---文件个数
ls -l * |grep "^d"|wc -l ---目录个数
计算当前目录下的文件数和目录数
十:命令:ls | sed "s:^:`pwd`/:"
在ls中列出文件的绝对路径
例如在root目录下面执行显示
/root/anaconda-ks.cfg
/root/break1.py
/root/continue1.py
/root/for.py
/root/function1.py
/root/if.py
/root/install.log
/root/install.log.syslog
/root/max.py
/root/max.pyc
/root/mkdir1.py
/root/python
/root/tab.py
/root/tab.pyc
/root/while.py
/root/公共的
/root/模板
/root/视频
/root/图片
/root/文档
/root/下载
/root/音乐
/root/桌面
十一:命令:find $PWD -maxdepth 1 | xargs ls -ld
列出当前目录下的所有文件(包括隐藏文件)的绝对路径, 对目录不做递归
十二:命令:find $PWD | xargs ls -ld
递归列出当前目录下的所有文件(包括隐藏文件)的绝对路径
十三命令:ls -tl --time-style=full-iso
ls -ctl --time-style=long-iso
指定文件时间输出格式
总之呢,命令后面可以接很多参数,也可以接管道|使用。多使用--help查看命令,可以学会很多命令的不同用法,当然我们没必要死记,熟能生巧,用的到了自然就明白了,实践很重要
扩展:
1. 显示彩色目录列表
打开/etc/bashrc, 加入如下一行:
alias ls="ls --color"
下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的含义如下:
1. 蓝色-->目录
2. 绿色-->可执行文件
3. 红色-->压缩文件
4. 浅蓝色-->链接文件
5. 灰色-->其他文件
1. 命令格式:
ls [选项] [目录名]
用法:ls [选项]... [文件]...
列出 FILE 的信息(默认为当前目录)。
如果不指定-cftuvSUX 或--sort 选项,则根据字母大小排序。
2. 命令功能:
列出目标目录中所有的子目录和文件。
3. 常用参数:
-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=关键字 交错-x,逗号分隔-m,水平-x,长-l,
单栏-1,详细-l,垂直-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=方式 指定在每个项目名称后加上指示符号方式:
none (默认),classify (-F),file-type (-p)
-i, --inode 显示每个文件的inode 号
-I, --ignore=PATTERN 不显示任何符合指定shell PATTERN 的项目
-k 即--block-size=1K
-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=方式 使用指定的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
--time=WORD 和-l 同时使用时显示WORD 所代表的时间而非修改时
间:atime、access、use、ctime 或status;加上
--sort=time 选项时会以指定时间作为排序关键字
--time-style=STYLE 和-l 同时使用时根据STYLE 代表的格式显示时间:
full-iso、iso、locale、posix-iso、+FORMAT。
FORMAT 即是"date"所用的时间格式;如果FORMAT
是FORMAT1<换行>FORMAT2,FORMAT1 适用于较旧
的文件而FORMAT2 适用于较新的文件;如果STYLE
以"posix-"开头,则STYLE 仅在POSIX 语系之外
生效。
-t 根据修改时间排序
-T, --tabsize=宽度 指定制表符(Tab)的宽度,而非8 个字符
-t 按修改时间排序
-T, --tabsize=COLS 指定制表符(Tab)的宽度,而非8个字符
-u 同-lt 一起使用:按照访问时间排序并显示
同-l一起使用:显示访问时间并按文件名排序
其他:按照访问时间排序
-U 不进行排序;按照目录顺序列出项目
-v 在文本中进行数字(版本)的自然排序
-w, --width=COLS assume screen width instead of current value
-x list entries by lines instead of by columns
-X sort alphabetically by entry extension
-1 list one file per line
SELinux options:
--lcontext Display security context. Enable -l. Lines
will probably be too wide for most displays.
-Z, --context Display security context so it fits on most
displays. Displays only mode, user, group,
security context and file name.
--scontext Display only security context and file name.
--help 显示此帮助信息并退出
--version 显示版本信息并退出
SIZE 可以是一个可选的整数,后面跟着以下单位中的一个:
KB 1000,K 1024,MB 1000*1000,M 1024*1024,还有 G、T、P、E、Z、Y。
使用色彩来区分文件类型的功能已被禁用,默认设置和 --color=never 同时禁用了它。
使用 --color=auto 选项,ls 只在标准输出被连至终端时才生成颜色代码。
LS_COLORS 环境变量可改变此设置,可使用 dircolors 命令来设置。
退出状态:
0 正常
1 一般问题 (例如:无法访问子文件夹)
2 严重问题 (例如:无法使用命令行参数)
4.常用示例
&&后面即表示后面命令和前面命令执行结果一致
一:命令:ls &&ls ./ &&ls -A ./ 列出当前目录中所有的子目录和文件。此命令后面省略的参数选项和目录,表示按默认方式显示我们所在目录下的所有文件和文件夹假如在root用户的用户目录下面则表示显示root文件夹下面的所有文件和文件夹 在使用ls命令时要注意命令的格式:在命令提示符后,首先是命令的关键字(ls),接下来是命令参数,在命令参数之前要有一短横线“-”,所有的命令参数都有特定的作用,自己可以根据需要选用一个或者多个参数,在命令参数的后面是命令的操作对象。
二:命令:ls -l &&ll &&ls -l ./
列出当前目录下详细信息所有文件和目录
三:命令:ls -l -R /tmp &&ls -lR /tmp
这条命令的作用呢 是查看tmp目录下的
这也是常用命令之一吧,例如我们想查看我们在其他目录下面下面的文件,并复制过来 不用切换目录即可 常和cp /tmp/test.tar.gz ./共同使用。在这条命令中,使用到了两个参数,分别为“l”和“R”,当然,你也可以把他们放在一起使用(-l -R可以写成-lR)
四:命令:ls -l ./ /tmp
显示当前目录下面 和tmp目录下面的所有目录和文件。ls后面也可以跟多个目录,同事查看目录下的内容
五:命令:ls -l t* 列出当前目录中所有以“t”开头的目录或者文件的详细内容。其实,在命令格式中,方括号内的内容都是可以省略的,对于命令ls而言,如果省略命令参数和操作对象,直接输入“ ls ”,则将会列出当前工作目录的内容清单,即命令一
六:命令:ls -F /tmp |grep / && ls -F /tmp |grep /$
列出 /tmp 目录下面的子目录
命令:ls -l /tmp | grep "^d"
列出 /tmp 文件下面的子目录详细情况
七:命令:ls -ltr t*
列出目前工作目录下所有名称是s 开头的文件,愈新的排愈后面。此状态下面我们可以查看我们最近新建的文件的先后,方便查找修改
八:命令:ls -AF
列出目前工作目录下所有档案及目录;目录于名称后加"/", 可执行档于名称后加"*" 。且显示出. ..之外的任何项目
九:命令:
ls -l * |grep "^-"|wc -l ---文件个数
ls -l * |grep "^d"|wc -l ---目录个数
计算当前目录下的文件数和目录数
十:命令:ls | sed "s:^:`pwd`/:"
在ls中列出文件的绝对路径
例如在root目录下面执行显示
/root/anaconda-ks.cfg
/root/break1.py
/root/continue1.py
/root/for.py
/root/function1.py
/root/if.py
/root/install.log
/root/install.log.syslog
/root/max.py
/root/max.pyc
/root/mkdir1.py
/root/python
/root/tab.py
/root/tab.pyc
/root/while.py
/root/公共的
/root/模板
/root/视频
/root/图片
/root/文档
/root/下载
/root/音乐
/root/桌面
十一:命令:find $PWD -maxdepth 1 | xargs ls -ld
列出当前目录下的所有文件(包括隐藏文件)的绝对路径, 对目录不做递归
十二:命令:find $PWD | xargs ls -ld
递归列出当前目录下的所有文件(包括隐藏文件)的绝对路径
十三命令:ls -tl --time-style=full-iso
ls -ctl --time-style=long-iso
指定文件时间输出格式
总之呢,命令后面可以接很多参数,也可以接管道|使用。多使用--help查看命令,可以学会很多命令的不同用法,当然我们没必要死记,熟能生巧,用的到了自然就明白了,实践很重要
扩展:
1. 显示彩色目录列表
打开/etc/bashrc, 加入如下一行:
alias ls="ls --color"
下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的含义如下:
1. 蓝色-->目录
2. 绿色-->可执行文件
3. 红色-->压缩文件
4. 浅蓝色-->链接文件
5. 灰色-->其他文件