`
wxl24life
  • 浏览: 293488 次
  • 性别: 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`命令的使用频率非常高。 命令的基本格式是:`ls [选项] [目录名]`。不带任何参数时,`ls`默认显示当前目录的内容。如果提供了目录名,则会列出该目录下的所有文件和子目录。 以下是一些`...

    实验80-Linux命令:ls命令1

    本文将深入讲解`ls`命令的基本用法和常见参数。 ### `ls`命令基本概念 `ls`命令来源于英文单词`list`,它用于显示指定目录或者当前目录中的文件和子目录。在缺省情况下,`ls`只显示非隐藏文件和目录。隐藏文件通常...

    Linux命令ls详解

    #### 无参数的ls命令 当`ls`命令没有任何参数时,默认情况下会列出当前目录下的所有非隐藏文件和目录。这些文件将以普通文本形式展示,其中文件名通常显示为白色,而目录名称显示为蓝色。此外,隐藏文件(以`.`开头...

    linux ls命令 源代码

    Linux系统中的`ls`命令是日常操作中最常用的命令之一,用于列出目录中的文件和子目录。这个命令在Unix-like系统中具有悠久的历史,是任何Linux用户必须掌握的基础工具。源代码的学习可以帮助我们深入理解它的运作...

    c++实现linux下ls命令

    在这篇文章中,我们将详细解析如何使用C++实现Linux下的ls命令。 首先,需要了解ls命令的作用和使用方法。ls命令可以列出文件名和文件的属性,包括文件的详细信息、文件的最后访问时间、文件的类型等信息。同时,ls...

    Linux网络操作系统基础:文件命令cd、ls、pwd、mkdir和touch命令.pptx

    Linux网络操作系统基础主要涵盖了一些基本的文件管理命令,这些命令对于日常使用和管理Linux系统至关重要。以下是关于这些命令的详细解释: 1. **文件命令:pwd** `pwd`(Print Working Directory)命令用于显示...

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

    ### Linux基本命令参数详解 #### 1. `ls` 命令 - **`ls -a /root`**: 此命令用于列出 `/root` 目录下的所有文件,包括那些隐藏文件。在 Linux 中,文件名以`.`开头的被视为隐藏文件。 - **示例**: 如果你想查看 `/...

    Linux 必学的60个命令

    * ls 命令:ls 命令的作用是查看文件列表,它的使用权限是所有用户。 * diff 命令:diff 命令的作用是比较文件,它的使用权限是所有用户。 * cat 命令:cat 命令的作用是查看文件内容,它的使用权限是所有用户。 * ...

    linux常用命令总结

    * help 命令:用于显示命令的使用方法和参数,例如 help ls 命令将显示 ls 命令的使用方法和参数。 二、文件系统管理命令 文件系统管理命令是 Linux 系统中最基本的命令,用于管理文件和目录。常见的文件系统管理...

    Linux常用命令总结

    Linux常用命令是任何使用Linux操作系统的人必须熟悉...由于Linux系统的丰富性和命令行的强大灵活性,这些命令的参数非常多样,可以满足各种复杂的使用场景。掌握这些基本命令对于Linux系统管理员和开发者来说至关重要。

    Linux下用C语言实现ls命令

    在深入探讨如何使用C语言在Linux环境下实现ls命令之前,我们先来理解一下ls命令的基本功能和作用。ls是Linux及类Unix系统中一个非常重要的命令,主要用于列出目录中的文件和子目录信息,包括文件名、权限、拥有者、...

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

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

    linux常用命令 ——总结

    7. ls命令:用于查看目录下的文件列表。格式:ls [目录名]。 8. diff命令:用于比较两个文件的差异。格式:diff 文件1 文件2。 9. cat命令:用于查看文件内容。格式:cat 文件名。 10. ln命令:用于创建链接文件。...

    Linux菜鸟入门级命令大全完整珍藏版.docx

    知识点:man 命令可以快速查看命令的使用方法和参数说明,是 Linux 新手的必备命令。 2. ls 命令:ls 命令用于查看目录或者文件的属性,例如输入“ls -l”可以查看当前目录下的文件和目录的详细信息。 知识点:ls ...

    linux常用命令大全.pptx

    本文从文件和目录操作命令、文件搜索和查找命令、文件权限管理命令、系统信息和进程管理命令、网络相关命令、压缩和解压缩命令、包管理命令等方面详细介绍了 Linux 命令的使用方法,希望能够帮助读者快速掌握 Linux ...

    linux中ls命令使用详解

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

    Linux中的ls命令详细使用.docx

    **Linux中的ls命令详解** `ls`命令是Linux操作系统中最基础且常用的命令之一,用于列出目录中的文件和子目录。它具有丰富的选项来提供不同形式的输出和排序方式,帮助用户更好地管理和查看文件系统。以下将详细介绍...

    linux命令大全及参数详细说明

    本文将详述一些常见的Linux命令及其参数,帮助你更好地理解和使用这个强大的操作系统。 一、文件与目录操作 1. `ls`:列出目录内容。如`ls -l`显示详细信息,`ls -a`显示所有文件包括隐藏文件。 2. `cd`:切换...

    Linux网络操作系统基础:基础命令之登录命令和电源管理命令.pptx

    例如,“ls -la /etc”就是一个基本的命令,其中“ls”是命令名,“-l”和“-a”是选项,“/etc”是参数。选项可以简写或全写,如“-a”等同于“--all”。了解这些基础可以帮助我们更高效地执行命令。 在命令行操作...

Global site tag (gtag.js) - Google Analytics