`
wxl24life
  • 浏览: 290190 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux: LS 命令参数使用总结

阅读更多

以下是根据 man ls 页面进行的总结。

 

1. 关于 -d 选项。

根据 man 里的描述,-d 参数要完成的事情是:
-d      Directories are listed as plain files (not searched recursively)

看两个例子,例子里 abc 是一个目录:

$ ls -l abc
total 0
drwxr-xr-x  2 wxl24life  staff  68 Mar 31 15:07 abcd
-rw-r--r--  1 wxl24life  staff   0 Mar 31 15:07 bb.txt
$ ls -ld abc
drwxr-xr-x  4 wxl24life  staff  136 Mar 31 15:07 abc

可以看到,-d 选项会把目录当做一个普通的文件,与 -l 搭配使用时,显示该目录文件的属性信息。而不是显示目录里面的内容。

 

2. 关于排序:

  • ls 命令默认会按照文件名字母序排序
  • 如果使用 -t 选项,将首先按照文件的最后修改时间排序(时间越新越靠前),之后再按字母顺序排
  • -T 结合 -l 可将时间显示为 hh:mi:ss 的形式,但不会按时间排序,因而不会影响默认字母排序
  • -S 按文件大小排序,越大越靠前
  • -u 结合 -l 选项可以看到每个文件最后被访问的时间,并且也会按该时间排序
  • 以上影响排序的选项如果结合 -r 选项一起使用,则按相反顺序排列

3. 其他:

ls 默认是按照每个文件名一行的方式输出的,有个例外:如果是在 terminal 下执行 ls,会显示在一行里。
对比一下

$ ls
aa.txt       abc0.txt     abc2.txt     abc4.txt     abc6.txt     abc8.txt     bcd          ls-noopt.log
abc          abc1.txt     abc3.txt     abc5.txt     abc7.txt     abc9.txt     ls-m.log     ls.log
$ ls > ls-noopt.log && cat ls-noopt.log
aa.txt
abc
abc0.txt
abc1.txt
abc2.txt
abc3.txt
abc4.txt
abc5.txt
abc6.txt
abc7.txt
abc8.txt
abc9.txt
bcd
ls-m.log
ls-noopt.log
ls.log

如果使用 -m 选项,则会打破这种默认输出方式,输出后所有文件名在一行显示,中间使用逗号分隔。

$ ls -m
aa.txt, abc, abc0.txt, abc1.txt, abc2.txt, abc3.txt, abc4.txt, abc5.txt, abc6.txt, abc7.txt, abc8.txt, abc9.txt, bcd, ls-m.log, ls-noopt.log, ls.log
$ ls -m > ls-m.log && cat ls-m.log
aa.txt, abc, abc0.txt, abc1.txt, abc2.txt, abc3.txt, abc4.txt, abc5.txt, 
abc6.txt, abc7.txt, abc8.txt, abc9.txt, bcd, ls-m.log, ls-noopt.log, ls.log

 

------

2014/04/07 新增:

关于 -v 选项的使用。先看下 man 下的说明:

-v      Force unedited printing of non-graphic characters; this is the default when output is not to a terminal.

>>> 什么是 non-graphic character? 

wikipedia 上有它的反义词 - graphic character - 说明。按我的理解,non-graphic charater 指的是在某种特定的字符编码下无法正常显示的字符,因而 “乱码” 应该可以归于这一类里。

>>> 我为什么会用到这个选项?

在 Mac OS X 下安装了 iterm2 终端,终端设置里使用的字符编码是 UTF-8,但是长期以来,使用 ls 命令都无法正常显示任意路径下的中文文件名。举例如下:

$ ls
C ????????????.pdf                Go ???????????? ?????????.pdf     Python ???????????? ?????????.pdf README.md

尝试调整字符编码无法解决问题。

实际上,该问题可以通过使用 ls 的 -v 选项完美解决,如下:

$ ls -v
C 学习笔记.pdf                            Go 学习笔记 第二版.pdf                          Python 学习笔记 第二版.pdf                      README.md

另外,ls 无法正常显示中文的问题只是在终端显示时才会碰到,如果先输出到文件再查看,则不需要 -v 选项就可以正常显示中文文件名:

$ ls > hanzi.log && cat hanzi.log 
C 学习笔记.pdf
Go 学习笔记 第二版.pdf
Python 学习笔记 第二版.pdf
README.md
hanzi.log

为了避免每次使用 ls 时都输入 -v ,可以修改 ls 的别名并添加 -v 选项,示例如下:

$ alias ls='ls -vG'
$ which ls
ls: aliased to ls -vG
$ ls
C 学习笔记.pdf                            Go 学习笔记 第二版.pdf                          Python 学习笔记 第二版.pdf                      README.md                         hanzi.log

当然,为了使以上设置长期生效,请自行在 shell 配置文件(如 ~/.bashrc,~/.zshrc 等)下添加上述 alias 语句。

0
0
分享到:
评论

相关推荐

    Linux命令ls详解

    Linux命令ls部分常用单参数的详细解释,还有一些常用多参数的解释,以及一些不常用的参数解释

    linux 中的ls命令参数详解及ls命令的使用实例

    一、ls命令参数详解  可以通过阅读 ls 的说明书页(man ls)来获得选项的完整列表。  -a – 全部(all)。列举目录中的全部文件,包括隐藏文件(.filename)。位于这个列表的起首处的 .. 和 . 依次是指父目录和...

    linux中ls命令使用详解

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

    LINUX基本命令LINUX基本命令

    1. 关於档案/目录处理的命令 ls——列目录 这是最基本的档案指令。 ls 的意义为 "list",也就是将某一个目录或是 某一个档案的内容显示出来。 格式:ls -1ACFLRabcdfgilmnopqrstux -W[sv] [files] 例: #ls (不跟...

    windows下的linux命令(ls等)

    有了这个可以在windows下使用linux的ls grep dirclors等命令 使用时请放在system32文件夹下

    linux非常实用的基本命令参数总结

    ls -a /root 列出/root目录下的隐藏文件与相关的属性参数 ls -al cd /

    实现ls的简单功能(Linux下运行)

    与ls命令类似,命令行参数可以有0到多个: 0个参数:列出当前目录下所有文件 参数为普通文件:列出文件 参数为目录:列出目录下所有文件 实现自定义选项r,a,l,h,m以及-- r 递归方式列出子目录 a 列出文件名第...

    Linux常用命令.txt

    常用的参数: -l(L) 查看当前目录下文件的属性信息 用法: ls -l d rwx r-x r-x 2 linux(所有者名) linux(所在的组名) 4096 Jul 15 2014 Music 111 101 101 root(管理者权限) 大小(单位:字节) (最后修改日期) ...

    自己总结的Linux常用的基本命令

    4、不加参数:表明ls操作的是当前目录 5、用户与文件的关系 1)所有者(U):创建文件的用户(只能是一个用户),但是所有者的身份也是可以发生变化的 2)所属组(G):所有者的授权 3)其它人(O) 6、-rw-r--r--:...

    Linux经常使用的命令大全合集

    2、ls命令:这是一个非常有用的查看文件与目录的命令,list之意,它的参数非常多,下 3、mkdir命令:创建 4、rm命令:删除 5、mv命令:该命令用于移动文件、目录或更名,move之意,它的常用参数如下:-f 如果目标...

    linux教程——很使用的那种

    ls /home,就会显示ls命令的结果,会提示按enter键或任意键返回。在gvim中也可以执行此命令,如:!dir,就会显示当前目录中的信息。 导入文件命令和!命令以结合起来使用,在末行模式下输入:r !命令。就会将命令的结果导入...

    Linux ls命令用法详解

    Linux ls命令 Linux ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。 语法 ls [-alrtAFR] [name...] 参数 : -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为”.”的视为隐藏档...

    Linux基础笔记命令 Centos6.5

    bc:使用计算器 使用bc计算器结果默认不保留小数点后任何一位 如需保留小数点 输入命令 scale=4(保留小数点后4位) 使用quit退出(快捷键:Ctrl+C) 灵活使用Table键 history:显示历史记录(最多纪录1000...

    linux总结

    命令字 命令选项 命令参数 2. cd ~返回用户宿主目录 cd . 用户的当前目录 cd .. 返回上一级目录 3. pwd 查看用户所在的目录 4. mkdir 创建目录 格式:mkdir dir1 表示当前目录下创建了dir1目录 mkdir /etc/...

    基础的Linux常用命令

    在此我就介绍几条比较基础的Linux命令帮助大家入门。 1. man 对你熟悉或不熟悉的命令提供帮助解释 eg:man ls 就可以查看ls相关的用法 注:按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止当前程序运行。 2. ls...

    linux ls实现

    实现linux下的ls命令 包括参数 -a -l -R 路径 以及参数相应组合,改变顺序,包含分栏输出功能、

    每天一个linux终端命令ls命令(3)

    可带的参数很多,这里只列举最常用的几种,有特殊需求可使用man或者–help命令进行参考。 man ls 或者 ls --help ls [-lha] 参数介绍: 参数 功能 -l 列出文件和文件夹的详细信息 -h 以人性化的方式显示文件...

    Linux系统基础知识梳理

    Linux 的学习对于一个程序员的重要性是不言而喻的。前端开发相比后端开发,接触 Linux 机会相对较少,因此往往容易忽视它。...ls命令:列举出目录下的文件和目录信息,ls经常使用的参数有三个: -a -l -F ls

    Linux下ftp命令详解

    Linux下ftp命令详解 FTP> ! 从 ftp 子系统退出到外壳。 FTP> ? 显示 ftp 命令说明。? 与 help 相同。 格式:? [command] 说明:[command]指定需要帮助的命令名称。如果没有指定 command,ftp 将显示全部命令的列表...

Global site tag (gtag.js) - Google Analytics