ls == list,根据不同的选项,列举指定目录或文件的相关信息,是Unix/Linux下最常用的命令之一,cd到某一目录下后执行的第一个命令。
ls命令格式:ls [OPTION]... [FILE]...
列举文件信息(默认为当前目录)。
ls
1 [loong@localhost ~]$ ls 2 Desktop regex src.tar time_test.c vimcdoc-1.7.0 VMwareTools 3 [loong@localhost ~]$ ls /usr 4 bin games kerberos libexec sbin src X11R6 5 etc include lib local share tmp 6 [loong@localhost ~]$ ls time_test.c 7 time_test.c
ls -a
-a选项同ls,但会列举当前目录或者指定目录下的所有文件,包括dot文件(.开头的文件)和.目录和..目录。
1 [loong@localhost ~]$ ls -a /usr 2 . bin games kerberos libexec sbin src X11R6 3 .. etc include lib local share tmp
ls -A
-A选项同ls,但会列举当前目录或者指定目录下的所有文件,包括dot文件(.开头的文件),但不包括.目录和..目录。
1 [loong@localhost ~]$ ls -A /usr 2 bin games kerberos libexec sbin src X11R6 3 etc include lib local share tmp
ls -l
-l选项的ls命令将列举当前目录或指定目录中文件或者子目录的详析信息。
1 [loong@localhost ~]$ ls -l 2 total 48 3 drwxr-xr-x 3 loong loong 4096 Mar 27 21:12 Desktop 4 drwxrwxr-x 2 loong loong 4096 Jan 13 16:01 regex 5 drwxrwxr-x 6 loong loong 4096 Feb 15 10:57 src.tar 6 -rw-rw-r-- 1 loong loong 153 Mar 27 19:47 time_test.c 7 drwxrwxrwx 3 loong loong 4096 Mar 27 19:29 vimcdoc-1.7.0 8 drwxrwxr-x 3 loong loong 4096 Jan 10 00:18 VMwareTools
ls -l列举的信息包含7个以Tab的域:
- 第一个域:第一个字符指明了文件类型
- -: 普通文件;
- d: 目录文件;
- l: 符号链接;
- s: socket文件;
- b: 块设备;
- c: 字符设备;
- p: 管道文件。
后面的9个字符指明了文件的访问权限:每三位指明一类用户的权限,分别是文件属主、同组用户、其它用户,权限分为读(r)、写(w)、执行(x)。
- 第二个域:链接数。普通文件至少为1,目录至少为2(.和..);
- 第三域:文件属主;
- 第四域:用户组;
- 第五域:文件大小,其中目录大小通常为块大小的整数倍;
- 第六域:文件的最近修改日期和时间,修改文件意味着对其内文件或子目录的增添和修改;
- 第七域:文件名
ls -t
按文件的修改时间列举文件,最近修改的在前。
1 [loong@localhost ~]$ ls 2 Desktop regex src.tar time_test.c vimcdoc-1.7.0 VMwareTools 3 [loong@localhost ~]$ ls -t 4 Desktop time_test.c vimcdoc-1.7.0 src.tar regex VMwareTools
ls -r
以相反顺序列举文件。
1 [loong@localhost ~]$ ls 2 Desktop regex src.tar time_test.c vimcdoc-1.7.0 VMwareTools 3 [loong@localhost ~]$ ls -r 4 VMwareTools vimcdoc-1.7.0 time_test.c src.tar regex Desktop
ls -1
单独行列举文件。
1 [loong@localhost ~]$ ls 2 Desktop regex src.tar time_test.c vimcdoc-1.7.0 VMwareTools 3 [loong@localhost ~]$ ls -1 4 Desktop 5 regex 6 src.tar 7 time_test.c 8 vimcdoc-1.7.0 9 VMwareTools
ls -F
可视化显示文件类型。
1 [loong@localhost ~]$ ls 2 Desktop regex src.tar time_test.c vimcdoc-1.7.0 VMwareTools 3 [loong@localhost ~]$ ls -F 4 Desktop/ regex/ src.tar/ time_test.c vimcdoc-1.7.0/ VMwareTools/
- / : 目录
- nothing : 普通文件.
- @ :符号链接文件
- * :可执行文件
ls -latr
1 [loong@localhost Desktop]$ ls 2 VMwareTools-8.1.4-227600.tar.gz vmware-tools-distrib 3 [loong@localhost Desktop]$ ls -latr 4 total 94984 5 drwxr-xr-x 7 loong loong 4096 Jan 23 2010 vmware-tools-distrib 6 -r--r--r-- 1 loong loong 97129687 Jan 23 2010 VMwareTools-8.1.4-227600.tar.gz 7 drwxr-xr-x 3 loong loong 4096 Mar 27 21:12 . 8 drwx------ 28 loong loong 4096 Mar 27 21:34 ..
使用alias
使用alias会更加方便,我系统当前帐号中定义的alias有:
1 [loong@localhost Desktop]$ alias 2 alias l.='ls -d .* --color=tty' 3 alias ll='ls -l --color=tty' 4 alias ls='ls --color=tty' 5 alias vi='vim' 6 alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' 7 [loong@localhost Desktop]$ l. 8 . .. 9 [loong@localhost Desktop]$ ll 10 total 94968 11 -r--r--r-- 1 loong loong 97129687 Jan 23 2010 VMwareTools-8.1.4-227600.tar.gz 12 drwxr-xr-x 7 loong loong 4096 Jan 23 2010 vmware-tools-distrib
ps:前3个alias定义在/etc/profile.d/目录下的colorls.csh和colorls.sh中,具体是哪个就不清楚了。
系统信息:
1 [loong@localhost /]$ cat /etc/redhat-release 2 CentOS release 5.7 (Final) 3 [loong@localhost /]$ uname -a 4 Linux localhost.localdomain 2.6.18-274.18.1.el5 #1 SMP Thu Feb 9 12:45:52 EST 2012 i686 i686 i386 GNU/Linux
以上参考:http://www.dutor.net/index.php/2010/06/cmd-ls/
模糊列举: 其中,*代表任意个字符(包括0个),?代表一个字符。
ls /etc/a*e
列出/etc/目录下以字母a开头且以字母e结尾的目录和文件。
1 [loong@localhost /]$ ls /etc/a*e 2 /etc/adjtime /etc/asound.state
ls /bin/l?
列出/bin/目录下以字母b开头的目录和文件,且目录名或文件名的长度为2.
1 [loong@localhost /]$ ls /bin/l? 2 /bin/ln /bin/ls
ls |more
当要显示的文件数太多(如/usr/bin/下的文件),这是一页屏不能显示,如果直接运行“ls /usr/bin”,则不能看见最前面的文件。这时用到通道“|more”,来显示多页屏输出(按空格显示下一页,回车显示下一行)。
1 [loong@localhost /]$ ls /usr/bin |more 2 [ 3 411toppm 4 a2p 5 a2ps 6 ab 7 ac 8 aconnect 9 acpi_listen 10 activation-client 11 addftinfo 12 addr2line 13 addresses 14 afs5log 15 alacarte 16 alsamixer 17 amidi 18 amixer 19 amtu 20 amuFormat.sh 21 animate 22 anytopnm 23 aplay 24 aplaymidi 25 --More-- 【注】此用法类似与windows下的cmd命令“dir /p”。