Linux学习笔记6ls命令

语  法:ls [-1aAbBcCdDfFgGhHiklLmnNopqQrRsStuUvxX][-I <范本样式>][-T <跳格字数>][-w <每列字符数>][--block-size=<区块大小>][--color=<使用时机>][--format=<列表格式>][--full-time][--help][--indicator-style=<标注样式>][--quoting-style=<引号样式>][--show-control-chars][--sort=<排序方式>][--time=<时间戳记>][--version][文件或目录...]

补充说明:执行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   显示版本信息。

练习:

每列仅显示一个文件或目录名称
[root@CentOS4 /]# ls -l
total 152
drwxr-xr-x   2 root root  4096 Sep  6 22:09 bin
drwxr-xr-x   3 root root  4096 Sep  6 22:07 boot
drwxr-xr-x   9 root root  6500 Sep 23 19:08 dev
drwxr-xr-x  81 root root  8192 Sep 23 19:08 etc
drwxr-xr-x   3 root root  4096 Sep  6 22:25 home
drwxr-xr-x   2 root root  4096 Feb 22  2005 initrd
drwxr-xr-x  12 root root  4096 Sep  6 22:14 lib
drwx------   2 root root 16384 Sep  7 05:58 lost+found
drwxr-xr-x   4 root root  4096 Sep 23 19:08 media
drwxr-xr-x   2 root root  4096 May  3 13:14 misc
drwxr-xr-x   2 root root  4096 Feb 22  2005 mnt
... ...

列出目录下的所有文件。
[root@CentOS4 /]# ls -a
.          bin   etc     lib         misc  proc  selinux  tmp
..         boot  home    lost+found  mnt   root  srv      usr
.autofsck  dev   initrd  media       opt   sbin  sys      var
[root@CentOS4 /]# ls -A
显示所有文件和目录,但不显示现行目录和上层目录
.autofsck  boot  etc   initrd  lost+found  misc  opt   root  selinux  sys  usr
bin        dev   home  lib     media       mnt   proc  sbin  srv      tmp  var
显示脱离字符
[root@CentOS4 /]# ls -b
bin   dev  home    lib         media  mnt  proc  sbin     srv  tmp  var
boot  etc  initrd  lost+found  misc   opt  root  selinux  sys  usr

-b原文的意思:
-b, --escape
              print octal escapes for nongraphic characters
       --block-size=SIZE
              use SIZE-byte blocks
可以这样理解:把文件名中不可输出的字符使用反斜杠加字符编号(就像在c语言里一样)的形式列出。

以更改时间排序,显示文件和目录
[root@CentOS4 /]# ls -l -c
total 152
drwxr-xr-x   2 root root  4096 Sep  6 22:09 bin
drwxr-xr-x   3 root root  4096 Sep  6 22:07 boot
drwxr-xr-x   9 root root  6500 Sep 23 19:08 dev
drwxr-xr-x  81 root root  8192 Sep 23 19:08 etc
drwxr-xr-x   3 root root  4096 Sep  6 22:25 home
drwxr-xr-x   2 root root  4096 Sep  6 22:04 initrd
drwxr-xr-x  12 root root  4096 Sep  6 22:14 lib
drwx------   2 root root 16384 Sep  7 05:58 lost+found
drwxr-xr-x   4 root root  4096 Sep 23 19:08 media
drwxr-xr-x   2 root root  4096 Sep  6 22:08 misc
drwxr-xr-x   2 root root  4096 Sep  6 22:04 mnt
drwxr-xr-x   2 root root  4096 Sep  6 22:04 opt
dr-xr-xr-x  69 root root     0 Sep 24  2007 proc
drwxr-x---  14 root root  4096 Sep 19 22:22 root
drwxr-xr-x   2 root root  8192 Sep  6 22:09 sbin
E文中对 -c说明是这样:
-c     with  -lt:  sort by, and show, ctime (time of last modification
              of file status information) with -l: show  ctime  and  sort  by
              name otherwise: sort by ctime

       -C     list entries by columns
-c 输出文件的i节点的修改时间,并以此排序
[root@CentOS4 /]# ls -c -l
... ...
drwxr-xr-x   2 root root  4096 Sep  6 22:04 opt
dr-xr-xr-x  69 root root     0 Sep 24  2007 proc
drwxr-x---  14 root root  4096 Sep 19 22:22 root
drwxr-xr-x   2 root root  8192 Sep  6 22:09 sbin
drwxr-xr-x   1 root root     0 Sep 24  2007 selinux
drwxr-xr-x   2 root root  4096 Sep  6 22:04 srv --不一样的行
drwxr-xr-x   9 root root     0 Sep 24  2007 sys
drwxrwxrwt   6 root root  4096 Sep 23 19:34 tmp
drwxr-xr-x  14 root root  4096 Sep  6 22:06 usr
drwxr-xr-x  19 root root  4096 Sep  6 22:11 var
以又上至下,从左到右的直行方式显示文件和目录名称。
[root@CentOS4 /]# ls -C -l
... ...
drwxr-xr-x   2 root root  4096 Feb 22  2005 opt
dr-xr-xr-x  69 root root     0 Sep 24  2007 proc
drwxr-x---  14 root root  4096 Sep 19 22:22 root
drwxr-xr-x   2 root root  8192 Sep  6 22:09 sbin
drwxr-xr-x   1 root root     0 Sep 24  2007 selinux
drwxr-xr-x   2 root root  4096 Feb 22  2005 srv --不一样的行
drwxr-xr-x   9 root root     0 Sep 24  2007 sys
drwxrwxrwt   6 root root  4096 Sep 23 19:34 tmp
drwxr-xr-x  14 root root  4096 Sep  6 22:06 usr
drwxr-xr-x  19 root root  4096 Sep  6 22:11 var

我对这-c 与-C参数很模糊,真不知道怎么样区分他们好。不管这么多先继续。

显示当前目录下的目录名称,而非其内容
[root@CentOS4 /]# ls -d
.

用Emacs的模式产生文件和目录列表
[root@CentOS4 /]# ls -D
bin   dev  home    lib         media  mnt  proc  sbin     srv  tmp  var
boot  etc  initrd  lost+found  misc   opt  root  selinux  sys  usr

[root@CentOS4 /]# ls -l
total 152
drwxr-xr-x   2 root root  4096 Sep 23 20:16 bin
drwxr-xr-x   3 root root  4096 Sep  6 22:07 boot
drwxr-xr-x   9 root root  6500 Sep 23 19:08 dev
drwxr-xr-x  81 root root  8192 Sep 23 20:16 etc
drwxr-xr-x   3 root root  4096 Sep  6 22:25 home
drwxr-xr-x   2 root root  4096 Feb 22  2005 initrd
对列表进行说明:
第1列包含类型(1bit)+用户所有者权限(3bit)+工作组权限(3bit)+其他用户或权限(3bit),总共10bit:
文件数据类型:
 - 表示普通文件,即除以下说明外的所有文件
 d 表示目录
 l 表示符号链结文件
 p 表示管道文件
 s 表示Socket文件
 c 表示字符设备文件
 b 表示块设备文件

文件权限:
 r 只读
 w 可写
 x 可执行
 t 粘贴位
 - 此位无权限,如r-x即可表示没有写的权限
 s 设置了suid,或sgid,例如-rwsrwx 表示所有者被设置了suid位
  ,而drwxrwsr表示工作组被设置了spid位
 S 设置了suid,或sgid,但此位不具有执行权限,如-rwSrwr-x表示文件的
  拥有者对文件设置了suid,但对文件不具有执行的权限。
第2列:硬链接数。
第3列:UID,默认用户名表示
第4列:GID,默认以工作组名表示。
第5列:文件或目录大小
第6列:修改文件或目录的日期
第7列:文件或目录名

参考资料:
《Linux常用命令大全》 Chinaitlab
《Linux系统开发员》

原文地址:https://www.cnblogs.com/wghao/p/904987.html