LinuxEye - Linux系统教程

LinuxEye - Linux系统教程

当前位置: 主页 > Linux命令 >

Linux ls命令参数及使用方法详解

时间:2013-06-07 15:13来源:www.linuxeye.com 编辑:LinuxEye 点击:
ls命令是Linux系统下最常用的命令。 ls命令 就是list的缩写。缺省下ls用来打印出当前目录的文件及文件夹清单,如果 ls 指定具体目录,那么就会显示该目录里的文件及文件夹清单。 通过
ls命令是Linux系统下最常用的命令。ls命令就是list的缩写。缺省下ls用来打印出当前目录的文件及文件夹清单,如果ls指定具体目录,那么就会显示该目录里的文件及文件夹清单。 通过ls 命令不仅可以查看Linux文件夹包含的文件,而且还可以查看文件权限(包括目录、文件夹、文件权限)、查看目录信息等等。ls是用Linux操作系统用得最多的命令。

命令格式
ls [参数] [目录名]

参数
  -1   每列仅显示一个文件或目录名称。
  -a或--all   下所有文件和目录。
  -A或--almost-all   显示所有文件和目录,但不显示现行目录和上层目录。
  -b或--escape   显示脱离字符。
  -B或--ignore-backups   忽略备份文件和目录。
  -c   以更改时间排序,显示文件和目录。
  -C   以又上至下,从左到右的直行方式显示文件和目录名称。
  -d或--directory   显示目录名称而非其内容。
  -D或--dired   用Emacs的模式产生文件和目录列表。
  -f   此参数的效果和同时指定"aU"参数相同,并关闭"lst"参数的效果。
  -F或--classify   在执行文件,目录,Socket,符号连接,管道名称后面,各自加上"*","/","=","@","|"号。
  -g   次参数将忽略不予处理。
  -G或--no-group   不显示群组名称。
  -h或--human-readable   用"K","M","G"来显示文件和目录的大小。
  -H或--si   此参数的效果和指定"-h"参数类似,但计算单位是1000Bytes而非1024Bytes。
  -i或--inode   显示文件和目录的inode编号。
  -I<范本样式>或--ignore=<范本样式>   不显示符合范本样式的文件或目录名称。
  -k或--kilobytes   此参数的效果和指定"block-size=1024"参数相同。
  -l   使用详细格式列表。
  -L或--dereference   如遇到性质为符号连接的文件或目录,直接列出该连接所指向的原始文件或目录。
  -m   用","号区隔每个文件和目录的名称。
  -n或--numeric-uid-gid   以用户识别码和群组识别码替代其名称。
  -N或--literal   直接列出文件和目录名称,包括控制字符。
  -o   此参数的效果和指定"-l" 参数类似,但不列出群组名称或识别码。
  -p或--file-type   此参数的效果和指定"-F"参数类似,但不会在执行文件名称后面加上"*"号。
  -q或--hide-control-chars   用"?"号取代控制字符,列出文件和目录名称。
  -Q或--quote-name   把文件和目录名称以""号标示起来。
  -r或--reverse   反向排序。
  -R或--recursive   递归处理,将指定目录下的所有文件及子目录一并处理。
  -s或--size   显示文件和目录的大小,以区块为单位。
  -S   用文件和目录的大小排序。
  -t   用文件和目录的更改时间排序。
  -T<跳格字符>或--tabsize=<跳格字数>   设置跳格字符所对应的空白字符数。
  -u   以最后存取时间排序,显示文件和目录。
  -U   列出文件和目录名称时不予排序。
  -v   文件和目录的名称列表以版本进行排序。
  -w<每列字符数>或--width=<每列字符数>   设置每列的最大字符数。
  -x   以从左到右,由上至下的横列方式显示文件和目录名称。
  -X   以文件和目录的最后一个扩展名排序。
  --block-size=<区块大小>   指定存放文件的区块大小。
  --color=<列表格式>   培植文件和目录的列表格式。
  --full-time   列出完整的日期与时间。
  --help   在线帮助。
  --indicator-style=<标注样式>   在文件和目录等名称后面加上标注,易于辨识该名称所属的类型。
  --quoting-syte=<引号样式>   把文件和目录名称以指定的引号样式标示起来。
  --show-control-chars   在文件和目录列表时,使用控制字符。
  --sort=<排序方式>   配置文件和目录列表的排序方式。
  --time=<时间戳记>   用指定的时间戳记取代更改时间。
  --version   显示版本信息。

用ls -l命令查看某一个目录会得到一个9个字段的列表.

第1行显示的信息: 总用量(total)  — 这个数值是该目录下所有文件及目录列表第5个字段的和(以k为单位),也就是该目录的大小.

第1字段:  文件属性字段
文件属性字段总共有10个字母组成,第一个字母表示文件类型,如果这个字母是一个减号”-”,则说明该文件是一个普通文件.字母”d”表示该文件是一个目录,字母”d”,是dirtectory(目录)的缩写.
请注意,一个目录或者说一个文件夹是一个特殊文件,这个特殊文件存放的是其他文件和文件夹的相关信息.

第2字段:文件硬链接数或目录子目录数

第3字段:文件拥有者

第4字段:文件拥有者所在的组

第5字段:文件文件大小(以字节为单位)

第6字段:文件创建月份

第7字段:文件创建日期

第8字段:文件创建时间

第9字段:文件名 (如果是一个符号链接,那么会有一个 “->” 箭头符号,后面根一个它指向的文件)

范例
例一:列出/root/linuxeye文件夹下的所有文件和目录的详细资料
命令:ls -l -R /root/linuxeye
在使用 ls 命令时要注意命令的格式:在命令提示符后,首先是命令的关键字,接下来是命令参数,在命令参数之前要有一短横线“-”,所有的命令参数都有特定的作用,自己可以根据需要选用一个或者多个参数,在命令参数的后面是命令的操作对象。在以上这条命令“ ls -l -R /root/linuxeye”中,“ls” 是命令关键字,“-l -R”是参数,“ /root/linuxeye”是命令的操作对象。在这条命令中,使用到了两个参数,分别为“l”和“R”,当然,你也可以把他们放在一起使用,如下所示:
命令:ls -lR /root/linuxeye
这种形式和上面的命令形式执行的结果是完全一样的。另外,如果命令的操作对象位于当前目录中,可以直接对操作对象进行操作;如果不在当前目录则需要给出操作对象的完整路径,例如上面的例子中,我的在当前家(root)目录下,我想对家(root)目录下的linuxeye文件进行操作,我可以直接输入 ls -lR linuxeye,也可以绝对路径用 ls -lR /root/linuxeye。

例二:列出当前目录中所有以“D”开头的目录下的详细内容,可以使用如下命令:
命令:ls -l D*   
可以查看当前目录下文件名以“D”开头的所有文件的信息。其实,在命令格式中,方括号内的内容都是可以省略的,对于命令ls而言,如果省略命令参数和操作对象,直接输入“ ls ”,则将会列出当前工作目录的内容清单。

例三:只列出当前目录下的子目录
# ls -F | grep /$
Django-1.5.1/
wd/

列出当前目录下的子目录详细情况
# ls -l | grep "^d"
drwxr-xr-x 9 www  games    4096 Apr 15 21:11 Django-1.5.1
drwxr-xr-x 2 root root     4096 Jun  5 18:44 wd

例四:列出目前工作目录下所有名称是"D"开头的档案,越新的排愈后面,可以使用如下命令:
# ls -ltr D*
-rw-r--r-- 1 root root  8028963 Mar 29 04:37 Django-1.5.1.tar.gz

Django-1.5.1:
total 84
-rw-r--r--  1 www  games  1558 Jun  6  2012 LICENSE
-rw-r--r--  1 www  games  1776 Jun  6  2012 README.rst
-rw-r--r--  1 www  games   667 Jun  6  2012 INSTALL
-rw-r--r--  1 www  games   112 Sep 10  2012 setup.cfg
-rw-r--r--  1 www  games  1566 Mar 29 04:07 MANIFEST.in
-rw-r--r--  1 www  games 21355 Mar 29 04:07 AUTHORS
-rw-r--r--  1 www  games  5395 Mar 29 04:09 setup.py
drwxr-xr-x  5 www  games  4096 Mar 29 04:28 tests
drwxr-xr-x  2 www  games  4096 Mar 29 04:28 scripts
drwxr-xr-x  2 www  games  4096 Mar 29 04:28 extras
drwxr-xr-x 13 www  games  4096 Mar 29 04:28 docs
-rw-r--r--  1 www  games  1229 Mar 29 04:28 PKG-INFO
drwxr-xr-x 17 www  games  4096 Apr 15 21:09 django
drwxr-xr-x  4 root root   4096 Apr 15 21:09 build
drwxr-xr-x  4 root root   4096 Apr 15 21:33 linuxeye

例五:列出目前工作目录下所有档案及目录;目录于名称后加"/", 可执行档于名称后加"*"
# ls -AF
account_info.tmp     contact_list.txt_bak  data.pkl             fseek.py      tmp.txt        zidian.py
account_info.txt     contact_query2.py     Django-1.5.1/        shop_list.py  try_except.py
account_info.txt_bk  contact_query.py      Django-1.5.1.tar.gz  shops.txt     typechk.py
ATM.py               c.py                  finput.py            test.py*      wd/
contact_list.txt     credit_account.log    f.py                 test.txt      while.py*

例六:计算当前目录下的文件数和目录数
命令:
# ls -l | grep "^-" | wc -l    #文件个数  
# ls -l | grep "^d" | wc -l   #目录个数

例七: 在ls中列出文件的绝对路径
# ls | sed "s:^:`pwd`/:"
/root/linuxeye/Django-1.5.1
/root/linuxeye/Django-1.5.1.tar.gz
/root/linuxeye/finput.py
/root/linuxeye/f.py
/root/linuxeye/fseek.py
/root/linuxeye/shop_list.py
/root/linuxeye/shops.txt
/root/linuxeye/test.py
/root/linuxeye/test.txt
/root/linuxeye/tmp.txt
/root/linuxeye/try_except.py
/root/linuxeye/typechk.py
/root/linuxeye/wd
/root/linuxeye/while.py
/root/linuxeye/zidian.py

例九:列出当前目录下的所有文件(包括隐藏文件)的绝对路径, 对目录不做递归
# find $PWD -maxdepth 1 | xargs ls -ld
drwxr-xr-x 9 www  games    4096 Apr 15 21:11 /root/linuxeye/Django-1.5.1
-rw-r--r-- 1 root root  8028963 Mar 29 04:37 /root/linuxeye/Django-1.5.1.tar.gz
-rw-r--r-- 1 root root      174 Apr 17 22:15 /root/linuxeye/finput.py
-rw-r--r-- 1 root root      270 Apr 20 21:09 /root/linuxeye/f.py
-rw-r--r-- 1 root root      122 Apr 17 22:56 /root/linuxeye/fseek.py
-rw-r--r-- 1 root root     1291 Apr 22 22:46 /root/linuxeye/shop_list.py
-rw-r--r-- 1 root root       67 Apr 22 21:06 /root/linuxeye/shops.txt
-rwxr-xr-x 1 root root      212 May  6 11:34 /root/linuxeye/test.py
-rw-r--r-- 1 root root      775 Apr 21 21:21 /root/linuxeye/test.txt
-rw-r--r-- 1 root root      101 May  7 18:19 /root/linuxeye/tmp.txt
-rw-r--r-- 1 root root      309 May 24 16:10 /root/linuxeye/try_except.py
-rw-r--r-- 1 root root      337 Mar 22 16:15 /root/linuxeye/typechk.py
drwxr-xr-x 2 root root     4096 Jun  5 18:44 /root/linuxeye/wd
-rwxr-xr-x 1 root root      368 Apr  9 22:52 /root/linuxeye/while.py
-rw-r--r-- 1 root root      328 May  7 14:29 /root/linuxeye/zidian.py

例十:递归列出当前目录下的所有文件(包括隐藏文件)的绝对路径
# find $PWD | xargs ls -ld

例十一:指定文件时间输出格式
drwxr-xr-x 9 www  games    4096 2013-04-15 21:11:10.000000000 +0800 Django-1.5.1
-rw-r--r-- 1 root root     2017 2013-04-12 18:44:46.000000000 +0800 contact_query.py
-rwxr-xr-x 1 root root      368 2013-04-09 22:52:27.000000000 +0800 while.py
-rw-r--r-- 1 root root  8028963 2013-03-29 04:37:33.000000000 +0800 Django-1.5.1.tar.gz
-rw-r--r-- 1 root root      337 2013-03-22 16:15:02.000000000 +0800 typechk.py

显示彩色目录列表
打开/etc/bashrc, 加入如下一行:
alias ls="ls --color"
下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的含义如下:
  • 蓝色-->目录
  • 绿色-->可执行文件
  • 红色-->压缩文件
  • 浅蓝色-->链接文件
  • 灰色-->其他文件

转载请保留固定链接: https://linuxeye.com/command/ls.html

------分隔线----------------------------
标签:ls
栏目列表
推荐内容