ls命令及常用参数详解

ls命令及常用参数详解

♢ \color{red}{\diamondsuit}

ls命令详解

ls命令:全称list,显示文件的文件名与相关属性。(目前工作目录所含之文件及子目录)

ls [-aAdfFhilnrRSt] 文件名或目录名称.. 
ls [--color={
    
    never,auto,always}] 文件名或目录名称..
ls [--full-time] 文件名或目录名称..
参数 含义
-a all, 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-A 同-a ,但不列出 “.” (目前目录) 及 “…” (父目录)
-l 以长格式显示目录下的内容列表,包括文件的权限、链接数、所有者名称和组所有者、文件大小、最后修改日期时间和文件/目录名称
-r reverse,将排序结果反向输出,例如:原本文件名由小到大,反向则为由大到小
-R –recursive,连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来
-S sort by file size。根据文件大小排序,而不是文件名
-t sort by modification time,以文件修改时间排序(从最新开始排)
-d 仅列出目录本身,而不是列出目录内的文件数据(常用)
-f 直接列出结果,而不进行排序 (ls 默认以文件名排序)
-F 根据文件、目录等信息,给予附加数据结构,例如:*:代表可可执行文件; /:代表目录; =:代表 socket 文件; |:代表 FIFO 文件
-g 像-l,但是不列出所有者
-G, no-group, 不列出任何有关于组的信息
–author 打印出每一个文件的作者
-n 类似-l,用数字UID和GID代替名称
-h 将文件大小以人类较易读的方式(例如 GB KB 等等)列
-c 输出文件的ctime(文件状态最后更改的时间),并根据ctime排序
-C 由上至下的列出项目
--full-time 显示完整时间格式
--time 输出 access 时间或改变权限属性时间 (ctime)而非内容变更时间 (modification time)
--color=never 不要依据文件特性给予颜色显示
--color=always 显示颜色

以上是我摘抄的比较常用的参数。实际上还有很多,需要的使用 ls --help 或 man ls 或 info ls自己查询

范例1:将主文件夹下的所有文件列出来(含属性与隐藏文件)

[root@study ~]# ls -al ~
total 56
dr-xr-x---. 5 root root 4096 Jun 4 19:49 .
dr-xr-xr-x. 17 root root 4096 May 4 17:56 ..
-rw-------. 1 root root 1816 May 4 17:57 anaconda-ks.cfg
-rw-------. 1 root root 6798 Jun 4 19:53 .bash_history
-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
-rw-rw-rw-. 1 root root 176 Dec 29 2013 .bashrc
-rw-r--r--. 1 root root 176 Jun 3 00:04 .bashrc_test
drwx------. 4 root root 29 May 6 00:14 .cache
drwxr-xr-x. 3 root root 17 May 6 00:14 .config

可以看到以 . 为开头的几个文件,以及目录档 (.) (…) .config

范例2:承上题,不显示颜色,但在文件名末显示出该文件名代表的类型(type)

[root@study ~]# ls -alF --color=never
total 56
dr-xr-x---. 5 root root 4096 Jun 4 19:49 ./
dr-xr-xr-x. 17 root root 4096 May 4 17:56 ../
-rw-------. 1 root root 1816 May 4 17:57 anaconda-ks.cfg
-rw-------. 1 root root 6798 Jun 4 19:53 .bash_history
-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
-rw-rw-rw-. 1 root root 176 Dec 29 2013 .bashrc
-rw-r--r--. 1 root root 176 Jun 3 00:04 .bashrc_test
drwx------. 4 root root 29 May 6 00:14 .cache/
drwxr-xr-x. 3 root root 17 May 6 00:14 .config/

范例3:完整显示文件的修改时间 (modification time)

[root@study ~]# ls -al --full-time
total 56
dr-xr-x---. 5 root root 4096 2015-06-04 19:49:54.520684829 +0800 .
dr-xr-xr-x. 17 root root 4096 2015-05-04 17:56:38.888000000 +0800 ..
-rw-------. 1 root root 1816 2015-05-04 17:57:02.326000000 +0800 anaconda-ks.cfg
-rw-------. 1 root root 6798 2015-06-04 19:53:41.451684829 +0800 .bash_history
-rw-r--r--. 1 root root 18 2013-12-29 10:26:31.000000000 +0800 .bash_logout
-rw-r--r--. 1 root root 176 2013-12-29 10:26:31.000000000 +0800 .bash_profile
-rw-rw-rw-. 1 root root 176 2013-12-29 10:26:31.000000000 +0800 .bashrc
-rw-r--r--. 1 root root 176 2015-06-03 00:04:16.916684829 +0800 .bashrc_test
drwx------. 4 root root 29 2015-05-06 00:14:56.960764950 +0800 .cache
drwxr-xr-x. 3 root root 17 2015-05-06 00:14:56.975764950 +0800 .config

可以看到,上面的“时间”字段变为完整的格式。一般来说, ls -al 仅列出目前短格式的时间,有时不会列出年份,
借由 --full-time 可以查阅到比较正确的完整时间格式。

其实 ls 的用法还有很多,包括查阅文件

注意:有时候会看到输入 ll 就等于是输入 ls -l 是一样的。

Linux中执行ls -l后,显示的各列代表什么意思?

比如

drwxr-xr-x   2 root root  4096 Mar 14 04:03 bin
drwxr-xr-x   4 root root  1024 Feb 15 14:45 boot

在这里插入图片描述
图片来自[鸟哥Linux私房菜 基础版-第四版].pdf

Linux各列信息详解图片来自博主Linux ls -l 输出信息每列所代表的含义

第1列:第一个字母d表示文件类型。’-‘(减号):普通文件;d:目录文件;l(小写l字符):链接文件;b:区块设备文件;c:字符设备文件;s:数据接口文件;p:数据输送档(FIFO, pipe);。
往下的9个字符是关于文件权限(r:read读、w:write写;x: execute可执行权限,-:无权限)这三个
权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
前3个rwx字符是文件的所有者权限,第二组r-x是组用户权限(组中所有者的权限),最后的r-x是其他用户权限
第2列:有多少链接指向该文件。
第3列:该文件/文件夹的所有者。
第4列:该文件/文件夹的所有组名。
第5列:文件/文件夹的大小(以字节为单位)。目录的大小总是4096字节。
第6列:表示文件最后的修改时间。
第7列:表示文件名或者目录名。

如果看完上面还是有点懵懵,那用下面几道例题加深下理解吧
例题

-rwxr-xr--

可以把它划分为四部分:[-][rwx][r-x][r--]

  • -:代表这个文件类型文件;
  • rwx:拥有者的权限,本例中为可读、可写、可执行;
  • r-x:同群组使用者权限,本例中为可读可执行;
  • r--:其他使用者权限,本例中为可读,就是只读之意.

例题:假设test1, test2, test3同属于testgroup这个群组,如果有下面的两个文件,请说明两个文件的拥有者与其相关的权限?

-rw-r--r-- 1 root root 238 Jun 18 17:22 test.txt
-rwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 ping_tsai

答:
文件test.txt的拥有者为root,所属群组为root。至于权限方面则只有root这个帐号可以存取此文件,其他人则仅能读此文件;
另一个文件ping_tsai的拥有者为test1,而所属群组为testgroup。其中test1 可以针对此文件具有可读可写可执行的权力;而同群组的test2, test3两个人与test1同样是testgroup的群组帐号,则仅可读可执行但不能写(亦即不能修改);
至于没有加入testgroup这一个群组的其他人则仅可以读,不能写也不能执行!

例题:承上一题如果目录为下面的样式,请问testgroup这个群组的成员与其他人(others)是否可以进入本目录?

drwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 groups/

答:
文件拥有者test1[rwx]可以在本目录中进行任何工作;
而testgroup这个群组[r-x]的帐号,例如test2, test3亦可以进入本目录进行工作,但是不能在本目录下进行写入的动作;
至于other的权限中[r–]虽然有r,但是由于没有x的权限,因此others的使用者,并不能进入此目录!

如果使用-n参数,看到的是这样的,0表示什么意思?
如果懵逼,那你需要去了解linux的UID和GID

drwxr-xr-x   2 0 0  4096 Mar 14 04:03 bin
drwxr-xr-x   4 0 0  1024 Feb 15 14:45 boot
drwxr-xr-x   6 0 0  4096 Jan 12 10:26 data
drwxr-xr-x  10 0 0  3520 Apr 26 15:38 dev

[root@study ~]# ls -al .bashrc
-rwxr-xr-x. 1 root root 176 Dec 29 2013 .bashrc

集思广益,整理不易

国家高速网络中心:http://ftp.twaren.net/Linux/CentOS/7/isos/
官网:http://isoredirect.centos.org/centos
官方网站:http://mirror.centos.org/centos/7/iso

参考文章来源:
[鸟哥Linux私房菜 基础版]
Linux ls 命令
Linux ls -l 输出信息每列所代表的含义

猜你喜欢

转载自blog.csdn.net/weixin_41948075/article/details/123472356