一天一命令-ls
系统软硬件环境平台:
VMware Workstation Pro 12.5.5 build-5234757
CentOS Linux release 7.3.1611
软件版本:ls (GNU coreutils) 8.22
测试时间:2017年5月26日
ls - list directory contents,显示目录中的文件列表
一、ls基本信息
#ls --version ls (GNU coreutils) 8.22 #type -a ls ls is aliased to ‘ls -p --color=auto‘ ls is /usr/bin/ls #alias | grep ls alias cls=‘clear‘ alias ls=‘ls -p --color=auto‘ alias lsl=‘ls -l --color=auto‘ alias l.=‘ls -dp .* --color=auto‘ alias l.l=‘ls -dl .* --color=auto‘ alias la=‘ls -ap --color=auto‘ alias ll=‘ls -al --color=auto‘ #which -a ls alias ls=‘ls -p --color=auto‘ /usr/bin/ls #whereis ls ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz #whatis ls ls (1) - list directory contents ls (1p) - list directory contents #/usr/bin/ls 输入原始路径,执行原始ls命令,无颜色 #\ls 转义,功能同上
二、ls命令格式和选项
ls [OPTION]... [FILE]... -a 显示隐藏文件 -A 显示隐藏文件,但不包含./和../ -d 显示目录本身属性而非目录下的内容 -g 只显示group -h 显示大小格式为K,M,G -i 显示inode值 -I 忽略一个指定文件或目录,注意目录后面不要加/,文件名和目录名必须完全匹配,不能使用通配符 -l 以长格式显示额外信息 -m 以逗号(,)为分隔符显示 -n 以数字显示uid和gid -o 只显示owner -p 在目录后显示斜杠/ -Q 将列出的每个文件都用("")来引用显示 -r 反转显示(默认排序为按文件名从0-9,a-z) -R 递归显示 -S 按文件大小排序,默认从大到小 -t 按mtime排序,从新到旧 -u 按atime从新到旧排序,配合-t选项显示 -U 按目录存放顺序显示 -x 文件以行显示,默认为列显示,主要是排序不同 -X 按文件后缀排序 -1 文件显示为1列
三、操作对象:
后边可以跟单个或多个文件或目录,也可以两者混合
四、补充:
4.1文件通配符
* 匹配零个或多个字符
? 匹配任何单个字符
~ 当前用户家目录
~usera 用户usera家目录
~+ 当前工作目录
~- 前一个工作目录
[0-9]匹配数字范围
[a-z]字母,非小写
[A-Z]字母,非大写
[wang]匹配列表中的任何一个字符
[^wang]匹配列表中的所有字符以外的字符
4.2预定义的字符类 man 7 glob查看
[:digit:] 任意数字相当于0-9
[:lower:] 任意小写字母
[:upper:] 任意大写字母
[:alpha:] 任意大小写字母
[:alnum:] 任意数字或字母
[:blank:] 水平空白字符
[:space:] 水平或垂直空白字符
[:punct:] 标点符号
[:print:] 可打印字符
[:cntrl:] 控制(非打印)字符
[:graph:] 图形字符
[:xdigit:] 十六进制字符
五、案例:
#ls --version ls (GNU coreutils) 8.22 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Richard M. Stallman and David MacKenzie. #ll /etc/chrony.keys -rw-r-----. 1 root chrony 9 Nov 15 2016 /etc/chrony.keys #ls -g /etc/chrony.keys -rw-r-----. 1 chrony 9 Nov 15 2016 /etc/chrony.keys #ls -o /etc/chrony.keys -rw-r-----. 1 root 9 Nov 15 2016 /etc/chrony.keys #touch a,b,c #ls 2017-04-26.log aaaaa abc.tar.gz a.py b.txt history.log passwd a/ abc a.html a.txt f5 info.log sum.sh a. a,b,c anaconda-ks.cfg a.zip f汉 pass #ls -m 2017-04-26.log, a/, a., aaaaa, abc, a,b,c, abc.tar.gz, a.html, anaconda-ks.cfg, a.py, a.txt, a.zip, b.txt, f5, f汉, history.log, info.log, pass, passwd, sum.sh #ls -Q "2017-04-26.log" "aaaaa" "abc.tar.gz" "a.py" "b.txt" "history.log" "passwd" "a"/ "abc" "a.html" "a.txt" "f5" "info.log" "sum.sh" "a." "a,b,c" "anaconda-ks.cfg" "a.zip" "f汉" "pass" #ls -n total 68 -rw-r--r--. 1 0 0 0 May 26 17:52 1 -rw-r--r--. 1 0 0 0 May 26 18:06 1.a -rw-r--r--. 1 0 0 0 May 26 17:52 2 -rw-r--r--. 1 0 0 0 Apr 26 17:29 2017-04-26.log -rw-r--r--. 1 0 0 0 May 26 17:52 88 -rw-r--r--. 1 0 0 0 May 26 18:06 9.z drwxr-xr-x. 3 0 0 15 Apr 27 18:26 a/ -rw-r--r--. 1 0 0 0 May 26 16:46 a. lrwxrwxrwx. 1 0 0 5 May 26 17:09 aaaaa -> a.txt -rwxr-xr-x. 1 1000 0 0 May 26 19:05 abc #ls -R .: 2017-04-26.log aaaaa abc.tar.gz a.py b.txt history.log passwd a/ abc a.html a.txt f5 info.log sum.sh a. a,b,c anaconda-ks.cfg a.zip f汉 pass ./a: b/ ./a/b: c/ ./a/b/c: f2 f22 f3 #ll -S total 76 -rw-r--r--. 1 root root 20819 May 17 00:03 info.log -rw-------. 1 root root 11449 Apr 26 17:48 history.log drwxr-xr-x. 7 root root 4096 May 26 19:18 ./ dr-xr-x---. 21 root root 4096 May 26 11:06 ../ -rw-r--r--. 1 root root 2235 Feb 20 09:04 passwd -rw-------. 1 root root 1940 Feb 20 08:37 anaconda-ks.cfg -rwxr-xr-x. 1 root root 167 May 26 11:06 sum.sh -rwxr-xr-x. 1 root root 142 Apr 26 16:22 a.py drwxr-xr-x. 3 root root 15 Apr 27 18:26 a/ -rw-r--r--. 2 root root 7 May 26 16:46 a.txt -rw-r--r--. 2 root root 7 May 26 16:46 b.txt drwxr-xr-x. 2 root root 6 May 26 19:18 .aabb/ lrwxrwxrwx. 1 root root 5 May 26 17:09 aaaaa -> a.txt -rw-r--r--. 1 root root 0 May 26 17:52 2 #ls //默认为列显示,排序为自上而下 1 2.b 9.z abc anaconda-ks.cfg b/ f5 pass 1.a 3 a/ a,b,c a.py b.txt f汉 passwd 2 3.c a. abc.tar.gz a.txt c/ history.log sum.sh 2017-04-26.log 88 aaaaa a.html a.zip dd/ info.log #ls -x //以行显示,排序为从左往右 1 1.a 2 2017-04-26.log 2.b 3 3.c 88 9.z a/ a. aaaaa abc a,b,c abc.tar.gz a.html anaconda-ks.cfg a.py a.txt a.zip b/ b.txt c/ dd/ f5 f汉 history.log info.log pass passwd sum.sh
5.1通配符练习:
touch f{1..5} fa fcd ls f* ls f? touch f汉 //注意汉字也属于一个字符 ls f? touch ff.txt ls f????? //后缀也属于字符长度 ll fa //不带路径,即当前路径 ll ./fa //显示为相对路径 ll ~+/fa //显示为绝对路径 ll f[1-3] //或者[1,2,3] ll f[135] //或者[1,3,5] touch f{a..f} touch f{A..F} ll f[a-c] //匹配a,A,b,B,c ll f[a-C] //匹配a,A,b,B,c,C ll f[A-C] //匹配A,b,B,c,C ll f[ACdf] //匹配A,C,d,f ll f[^a-d] //匹配除了a,A,b,B,c,C,d ll f[[:lower:]] 匹配小写字母a,b,c,d... ll f[[:upper:]] 匹配大写字母A,B,C,D... ls -d /etc/*.d 显示/etc下的所有以.d结尾的文件和目录 ls -d .*/ 显示目录下的隐藏目录,包括.和.. ls -d */ 显示目录下的非隐藏目录 #ll [[:digit:]] -rw-r--r--. 1 root root 0 May 26 17:52 1 -rw-r--r--. 1 root root 0 May 26 17:52 2 -rw-r--r--. 1 root root 0 May 26 17:52 3 #ll [[:digit:]]* -rw-r--r--. 1 root root 0 May 26 17:52 1 -rw-r--r--. 1 root root 0 May 26 18:06 1.a -rw-r--r--. 1 root root 0 May 26 17:52 2 -rw-r--r--. 1 root root 0 Apr 26 17:29 2017-04-26.log -rw-r--r--. 1 root root 0 May 26 18:06 2.b -rw-r--r--. 1 root root 0 May 26 17:52 3 -rw-r--r--. 1 root root 0 May 26 18:06 3.c -rw-r--r--. 1 root root 0 May 26 17:52 88 -rw-r--r--. 1 root root 0 May 26 18:06 9.z #ll [[:digit:]].* -rw-r--r--. 1 root root 0 May 26 18:06 1.a -rw-r--r--. 1 root root 0 May 26 18:06 2.b -rw-r--r--. 1 root root 0 May 26 18:06 3.c -rw-r--r--. 1 root root 0 May 26 18:06 9.z #ls f* f1 f2 f23 f3 f4 f4422 f5 f汉 #ls f? f1 f2 f3 f4 f5 f汉 #ls f?? f23
此文章为个人学习总结,如有任何问题,可发送邮件至[email protected],互相交流。
时间: 2024-10-28 22:46:40