一天一命令-ls

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一天一命令-ls相关的知识,希望对你有一定的参考价值。

一天一命令-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],互相交流。


本文出自 “rackie” 博客,请务必保留此出处http://rackie386.blog.51cto.com/11279229/1929983

以上是关于一天一命令-ls的主要内容,如果未能解决你的问题,请参考以下文章

每天一点Linux小笔记!

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

-bash: /usr/bin/ls: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory(代码片段

一天一命令-命令帮助

一天一命令-history

一天一命令-xargs