ls

相关命令:dir                                                          

ls命令是linux下最常用的命令。ls命令就是list的缩写,缺省下ls用来打印出当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单。通过ls 命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。


1. 命令格式:

ls [选项] [目录名]

2. 命令功能:

列出目标目录中所有的子目录和文件。

3. 常用参数

长选项必须使用的参数对于短选项时也是必需使用的。

-a, -all                      列出目录下的所有文件,包括以 . 开头的隐含文件

-A,                          同-a,但不列出“.”(表示当前目录)和“..”

(表示当前目录的父目录)。

-c,                          配合 -lt:根据 ctime 排序及显示ctime

(文件状态最后更改的时间)

配合 -l:显示ctime但根据名称排序否则:根据 ctime 排序

-C,                          每栏由上至下列出项目

--color[=WHEN]             控制是否使用色彩分辨文件。

WHEN可以是'never'、'always'或'auto'其中之一

-d, --directory               将目录象文件一样显示,而不是显示其下的文件。

-D, --dired                   产生适合 Emacs 的 dired 模式使用的结果

-f,                          对输出的文件不进行排序,-aU 选项生效,-lst 选项失效

-g,                          类似 -l,但不列出所有者

-G, --no-group                不列出任何有关组的信息

-h, --human-readable          以容易理解的格式列出文件大小 (例如 1K 234M 2G)

-si,                         类似-h,但文件大小取 1000 的次方而不是 1024

-H,

--dereference-command-line 使用命令列中的符号链接指示的真正目的地

--indicator-style=方式     指定在每个项目名称后加上指示符号<方式>:

none (默认),classify (-F),file-type (-p)

-i, --inode                   印出每个文件的 inode 号

-I, --ignore=样式             不印出任何符合 shell 万用字符<样式>的项目

-k,                          即 -block-size=1K,以 k 字节的形式表示文件的大小

-l,                          除了文件名之外,还将文件的权限、所有者、文件大小

等信息详细列出来

-L, --dereference             当显示符号链接的文件信息时,

显示符号链接所指示的对象而并非符号链接本身的信息

-m,                          所有项目以逗号分隔,并填满整行行宽

-o,                          类似 -l,显示文件的除组信息外的详细信息。

-r, --reverse                 依相反次序排列

-R, --recursive               同时列出所有子目录层

-s, --size                    以块大小为单位列出所有文件的大小

-S,                          根据文件大小排序

-sort=WORD                    以下是可选用的 WORD 和它们代表的相应选项:

extension -X status -c

none -U time -t

size -S atime -u

time -t access -u

version -v use -u

-t,                          以文件修改时间排序

-u,                          配合 -lt:显示访问时间而且依访问时间排序

配合 -l:显示访问时间但根据名称排序

否则:根据访问时间排序

-U,                          不进行排序;依文件系统原有的次序列出项目

-v,                          根据版本进行排序

-w, -width=COLS               自行指定屏幕宽度而不使用目前的数值

-x                            逐行列出项目而不是逐栏列出

-X                            根据扩展名排序

-1                            每行只列出一个文件

--help                    显示此帮助信息并离开

--version                 显示版本信息并离开

注释:

SIZE 可以是一个可选的整数,后面跟着以下单位中的一个:

KB 1000,K 1024,MB 1000*1000,M 1024*1024,还有 G、T、P、E、Z、Y。

使用色彩来区分文件类型的功能已被禁用,默认设置和 --color=never 同时禁用了它。

使用 --color=auto 选项,ls 只在标准输出被连至终端时才生成颜色代码。

LS_COLORS 环境变量可改变此设置,可使用 dircolors 命令来设置。

退出状态:

0  正常

1  一般问题 (例如:无法访问子文件夹)

2  严重问题 (例如:无法使用命令行参数)

4. 常用范例:

例一、列出/home/lucifer文件夹下的所有文件和目录的详细资料?

命令:ls -l -R /home/lucifer 或 ls -lR /home/lucifer

[root@lucifer ~]# ls -lR /home/lucifer

/home/lucifer:

total 4

-rw-r--r--. 1 root root    0 Jan 22 16:20 1.txt

drwxr-xr-x. 2 root root 4096 Jan 22 16:20 test

/home/lucifer/test:

total 0

注:

-l  使用长格式列出信息

-R  递归显示子目录

ls -al

--a参数与l参数结合使用,以长列表形式显示所有目录及文件详细信息。包括文件类型、文件权限、硬连接数、文件拥有者、文件所属组、文件大小、更动时间、文件名等。其中

第1列:drwxr-xr-x代表文件的类型及权限

以d开头的为文件夹,以-开头的为文件

以l开头的为连接文件

第2列:文件的链接数

第3、4列:拥有文件的用户及组

第5列:文件的大小

第6列:文件最后的修改时间

第7列:文件名

[root@lucifer var]# ls -al

total 80

drwxr-xr-x. 20 root root 4096 Jan 22 17:01 .

dr-xr-xr-x. 22 root root 4096 Jan 22 17:14 ..

-rw-r--r--.  1 root root    0 Jan 22 17:01 1

-rw-r--r--.  1 root root    0 Jan 22 17:01 2

-rw-r--r--.  1 root root    0 Jan 22 17:01 3

-rw-r--r--.  1 root root    0 Jan 22 17:01 4

-rw-r--r--.  1 root root    0 Jan 22 17:01 5

drwxr-xr-x.  2 root root 4096 Jan 22 15:04 account

drwxr-xr-x.  8 root root 4096 Jan 22 15:02 cache

drwxr-xr-x.  2 root root 4096 Feb 22  2013 crash

drwxr-xr-x.  2 root root 4096 Sep 21  2012 cvs

drwxr-xr-x.  3 root root 4096 Jan 22 15:04 db

ls -al |more

当文件夹下的文件及目录过多,一屏显示不下的情况下可以结合管道符及more命令使用,以实现分屏显示

ls -lh

h参数与l参数结合,更合理的显示文件的大小。

[root@lucifer lucifer]# ls -lh

total 4.0K

-rw-r--r--. 1 root root    0 Jan 22 16:20 1.txt

-rw-r--r--. 1 root root    0 Jan 22 17:10 t3

-rw-r--r--. 1 root root    0 Jan 22 16:31 t4

-rw-r--r--. 1 root root    0 Jan 22 16:31 t5

drwxr-xr-x. 2 root root 4.0K Jan 22 17:10 test

-rwxrwxrwx. 1 root root    0 Jan 22 17:12 test.sh

ls -d */

只列出目录信息,而不显示文件。有时文件夹下文件和目录过多,可以用-d参数只显示目录

[root@lucifer lucifer]# ls -d */

test/

ls -R

显示目录及多级子目录下的文件及目录信息

[root@lucifer lucifer]# ls -R

.:

1.txt  t3  t4  t5  test  test.sh

./test:

t10  t11  t9

ls -il

在第一列显示inode信息,即文件索引信息

[root@lucifer lucifer]# ls -il

total 4

270570 -rw-r--r--. 1 root root    0 Jan 22 16:20 1.txt

270587 -rw-r--r--. 1 root root    0 Jan 22 17:10 t3

270572 -rw-r--r--. 1 root root    0 Jan 22 16:31 t4

270573 -rw-r--r--. 1 root root    0 Jan 22 16:31 t5

270569 drwxr-xr-x. 2 root root 4096 Jan 22 17:10 test

270589 -rwxrwxrwx. 1 root root    0 Jan 22 17:12 test.sh

例二、列出当前目录中所有以“t”开头的文件的详细内容?

命令:ls -l t*

[root@lucifer lucifer]# ls -l t*

-rw-r--r--. 1 root root    0 Jan 22 16:31 t4

-rw-r--r--. 1 root root    0 Jan 22 16:31 t5

test:

total 0

可以查看当前目录下文件名以“t”开头的所有文件的信息。其实,在命令格式中,方括号内的内容都是可以省略的,对于命令ls而言,如果省略命令参数和操作对象,直接输入“ ls ”,则将会列出当前工作目录的内容清单。

例三、只列出目录下的子目录

命令:ls -F /var |grep /$

[root@lucifer var]# ls

1  3  5        cache  cvs  empty  lib    lock  mail  opt       run    tmp

2  4  account  crash  db   games  local  log   nis   preserve  spool  yp

[root@lucifer var]# ls -F |grep /$

account/

cache/

crash/

cvs/

db/

empty/

games/

lib/

local/

lock/

log/

nis/

opt/

preserve/

run/

spool/

tmp/

yp/

命令:ls -l /var | grep "^d"

列出 /var 文件下面的子目录详细情况

[root@lucifer var]# ls -l /var |grep "^d"

drwxr-xr-x.  2 root root 4096 Jan 22 15:04 account

drwxr-xr-x.  8 root root 4096 Jan 22 15:02 cache

drwxr-xr-x.  2 root root 4096 Feb 22  2013 crash

drwxr-xr-x.  2 root root 4096 Sep 21  2012 cvs

drwxr-xr-x.  3 root root 4096 Jan 22 15:04 db

drwxr-xr-x.  3 root root 4096 Jan 22 15:04 empty

例四、列出目前工作目录下所有名称是s开头的档案,以时间排序。

命令:ls -ltr s*

[root@lucifer lucifer]# ls -ltr t*

-rw-r--r--. 1 root root    0 Jan 22 16:31 t5

-rw-r--r--. 1 root root    0 Jan 22 16:31 t4

-rw-r--r--. 1 root root    0 Jan 22 17:10 t3

test:

total 0

-rw-r--r--. 1 root root 0 Jan 22 16:32 t9

-rw-r--r--. 1 root root 0 Jan 22 16:32 t10

-rw-r--r--. 1 root root 0 Jan 22 17:10 t11

例五、列出目前工作目录下所有档案及目录;目录于名称后加"/", 可执行档于名称后加"*"

命令:ls -AF

[root@lucifer lucifer]# ls -AF

1.txt  .bash_logout  .bash_profile  .bashrc  t3  t4  t5  test/  test.sh*

例六、计算当前目录下的文件数和目录数

命令:

ls -l * |grep "^-"|wc -l    ---文件个数

ls -l * |grep "^d"|wc -l    ---目录个数

[root@lucifer etc]# ls -l * |grep "^-"|wc -l

406

[root@lucifer etc]# ls -l * |grep "^d"|wc -l

72

例七、在ls中列出文件的绝对路径

命令:ls | sed "s:^:`pwd`/:"

[root@lucifer lucifer]# ls | sed "s:^:`pwd`/:"

/home/lucifer/1.txt

/home/lucifer/t3

/home/lucifer/t4

/home/lucifer/t5

/home/lucifer/test

/home/lucifer/test.sh

例八、列出当前目录下的所有文件(包括隐藏文件)的绝对路径, 对目录不做递归

命令:find $PWD -maxdepth 1 | xargs ls -ld

[root@lucifer lucifer]# find $PWD -maxdepth 1 | xargs ls -ld

drwx------. 3 lucifer lucifer 4096 Jan 22 17:28 /home/lucifer

-rw-r--r--. 1 root    root       0 Jan 22 16:20 /home/lucifer/1.txt

-rw-------. 1 lucifer lucifer    0 Jan 22 17:28 /home/lucifer/.bash_history

-rw-r--r--. 1 lucifer lucifer   18 Feb 22  2013 /home/lucifer/.bash_logout

-rw-r--r--. 1 lucifer lucifer  176 Feb 22  2013 /home/lucifer/.bash_profile

-rw-r--r--. 1 lucifer lucifer  124 Feb 22  2013 /home/lucifer/.bashrc

-rw-r--r--. 1 root    root       0 Jan 22 17:10 /home/lucifer/t3

-rw-r--r--. 1 root    root       0 Jan 22 16:31 /home/lucifer/t4

-rw-r--r--. 1 root    root       0 Jan 22 16:31 /home/lucifer/t5

drwxr-xr-x. 2 root    root    4096 Jan 22 17:10 /home/lucifer/test

-rwxrwxrwx. 1 root    root       0 Jan 22 17:12 /home/lucifer/test.sh

例九、递归列出当前目录下的所有文件(包括隐藏文件)的绝对路径

命令: find $PWD | xargs ls -ld

例十、指定文件时间输出格式

命令:ls -tl --time-style=full-iso

[root@lucifer lucifer]# ls -lt --time-style=full-iso

total 4

-rwxrwxrwx. 1 root root    0 2015-01-22 17:12:48.343426603 +0800 test.sh

drwxr-xr-x. 2 root root 4096 2015-01-22 17:10:58.014423595 +0800 test

-rw-r--r--. 1 root root    0 2015-01-22 17:10:50.556427648 +0800 t3

-rw-r--r--. 1 root root    0 2015-01-22 16:31:44.064429633 +0800 t4

-rw-r--r--. 1 root root    0 2015-01-22 16:31:44.064429633 +0800 t5

-rw-r--r--. 1 root root    0 2015-01-22 16:20:33.216427011 +0800 1.txt

ls -ctl --time-style=long-iso

[root@lucifer lucifer]# ls -ltc --time-style=long-iso

total 4

-rwxrwxrwx. 1 root root    0 2015-01-22 17:14 test.sh

drwxr-xr-x. 2 root root 4096 2015-01-22 17:10 test

-rw-r--r--. 1 root root    0 2015-01-22 17:10 t3

-rw-r--r--. 1 root root    0 2015-01-22 16:31 t4

-rw-r--r--. 1 root root    0 2015-01-22 16:31 t5

-rw-r--r--. 1 root root    0 2015-01-22 16:20 1.txt

扩展:

1. 显示彩色目录列表

打开/etc/bashrc, 加入如下一行:

alias ls="ls --color"

下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的含义如下:

蓝色-->目录

绿色-->可执行文件

红色-->压缩文件

浅蓝色-->链接文件

灰色-->其他文件

备注:此文参考“每天一个linux命令”总结。

转载于:https://blog.51cto.com/johnnyr/1607009

linux命令总结-ls相关推荐

  1. linux 命令:ls命令

    linux命令:ls命令只列出目录名或只列出文件名的正确方法 要列出当前目录下所有的文件名和目录名直接使用ls命令即可. 但如何只列出文件名而不列出目录呢? 查遍了ls 的帮助,也没看到有这个现成的选 ...

  2. 每日一个Linux命令之ls命令

    每日一个Linux命令之ls命令 1. ls命令简介 2. 常见选项 1. ls命令简介 ls命令(list)可用于列出指定路径下的文件(Linux中一切皆文件,目录也是文件的一种),如果不指定路径, ...

  3. 【Linux命令】ls命令

    [Linux]ls命令 ls 命令是 linux 下最常用的命令.ls 命令就是 list 的缩写,用来打印出当前目录的清单.如果 ls 指定其他目录,那么就会显示指定目录里的文件及文件夹清单. 通过 ...

  4. linux命令之ls命令及常用参数详解

    1.  ls命令解释 ls英文全称为list,列表列出的意思.作用是列出目录中的内容 2.  命令格式 Ls [参数] [目录] 3.  命令常用参数 不带参数:默认列出目录下的所有文件名 -l:   ...

  5. linux命令fs ls,Linux 命令:fsdisk

    sfdisk 是 Linux下面的分区表操作工具,可显示分区的设定信息,并检查分区是否正常.sfdisk 也可用来建立分区. 用法: sfdisk [options] device - 选项说明: 常 ...

  6. Linux命令:ls的实现

    单个执行不带参数的ls命令时,会显示当前目录下的文件名 这里我们用到了两个函数opendir和readdir.这两个函数存在于<dirent.h>头文件中用法如下: 还有一个dirent类 ...

  7. linux命令功能ls,【Linux】- ls命令详解

    1 命令功能: 列出当前目录下或者指定目录下的所有文件和目录,ls是list的缩写. 2 命令语法: ls [选项] [目录名]     #注:[]中的内容为非必选项 3 命令选项: -a 列出目录下 ...

  8. Linux命令之 --- ls命令

    ls 命令是Linux下最常用的指令之一,为英文单词 list 的缩写,功能是列出指定目录下的内容及其相关属性信息. 以下命令是在rehat系统上试验操作的. 1.ls 列出当前目录的内容 2.ls ...

  9. linux 命令:ls 详解

    用法:ls [OPTION]... [FILE]... 打印关于FILE的信息(默认当前目录) 以字母表顺序排序(如果没有使用-cftuvSUX或者--sort等选项)选项(OPTION):-a, - ...

最新文章

  1. 让AI训练AI,阿里和浙大的“AI训练师助手”是这样炼成的
  2. python凹多边形分割_使用Opencv python从Image中裁剪凹面多边形
  3. linq学习笔记(2):DataContext
  4. ulimit限制 新系统_说来惭愧,我被ulimit摔了一跤...
  5. SpringBoot_web开发-SpringMVC自动配置原理
  6. jaxb_JAXB –新手的观点,第2部分
  7. epoll.h 源码记录
  8. spark TaskMemoryManager shuffle 内存管理
  9. FD_ISSET read 后程序被阻塞【原创】
  10. 如何把数据库从sql变成mysql_(转)如何将数据库从SQL Server迁移到MySQL
  11. Windows2008R2自动更新造成的意外重启
  12. 网易新闻 鸿蒙,网易新闻鸿蒙版下载-网易新闻 鸿蒙版v78.5-PC6鸿蒙网
  13. Linux系统中的远程访问及控制
  14. Unity-两张图片叠加合成一张图片
  15. python - 例题分析:工时与工资
  16. java代码如何整合_Java如何合并两个PPT文档?
  17. python 对比两张图片是否相同
  18. Win10、Win7定时开关机
  19. 软考中级软件设计师---系统开发基础
  20. ABAC相关标准在数据服务中的应用——XACML和NGAC的比较

热门文章

  1. 考研完形填空 方法技巧*
  2. wifi卡慢延迟高_wifi卡怎么办(wifi信号满格但网速慢解决方法)
  3. Ear Clipping算法简介
  4. 2-2 用Plot函数绘图
  5. VUE动态切换Button的icon
  6. mysql set password_MySQL修改用户的密码(SET PASSWORD)的例子
  7. A. IQ test
  8. CO-PCA-利润中心会计
  9. wireshark ARP抓包
  10. [Spring手撸专栏学习笔记]——把AOP动态代理,融入到Bean的生命周期