设为首页 收藏本站
查看: 982|回复: 0

[经验分享] linux Cp .md

[复制链接]

尚未签到

发表于 2018-5-19 08:05:07 | 显示全部楼层 |阅读模式
  # Linux Ls命令
  [TOC]
  **Ls命令**是linux下最常用的命令。ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单。
  通过ls命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。
  ## 命令语法
  >ls(选项)(参数)
  

  ## 选项
  - `-a:`显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);
  - `-A:`显示除影藏文件“.”和“..”以外的所有文件列表;
  - `-C:`多列显示输出结果。这是默认选项;
  - `-l:`与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;
  - `-F:`在每个输出项后追加文件的类型标识符; `具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;`
  - `-b:`将文件中的不可输出的字符以反斜线“”加字符编码的方式输出;
  - `-c:`与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间;
  - `-d:`仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;
  - `-f:`此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果;
  - `-i:`显示文件索引节点号(inode)。一个索引节点代表一个文件;
  - `--file-type:`与“-F”选项的功能相同,但是不显示“*”;
  - `-k:`以KB(千字节)为单位显示文件大小;
  - `-l:`以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;
  - `-m:`用“,”号区隔每个文件和目录的名称;
  - `-n:`以用户识别码和群组识别码替代其名称;
  - `-r:`以文件名反序排列并输出目录内容列表;
  - `-s:`显示文件和目录的大小,以区块为单位;
  - `-t:`用文件和目录的更改时间排序;
  - `-L:`如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;
  - `-R:`递归处理,将指定目录下的所有文件及子目录一并处理;
  - `--full-time:`列出完整的日期与时间;
  - `--color[=WHEN]:`使用不同的颜色高亮显示不同类型的。
  ## 参数
  >目录:指定要显示列表的目录,也可以是具体的文件。
  

  ## 实例
  ### 1. 显示当前目录下的文件和目录(隐藏文件除外)。
  #### ls
  ```css
  [root@MLibra ~]# ls
  ssh_host_ecdsa_key.pub  ssh_host_ed25519_key.pub ssh_host_rsa_key.pub
  ```
  说明:不带参数运行ls会只列出文件或者目录,看不到其他信息输出。
  ### 2. 显示当前目录下包括影藏文件在内的所有文件列表
  #### ls -a
  ```css
  [root@MLibra ~]# ls -a
  .              .bash_logout   .cshrc                    ssh_host_rsa_key.pub
  ..             .bash_profile  ssh_host_ecdsa_key.pub    .tcshrc
  .bash_history  .bashrc        ssh_host_ed25519_key.pub
  ```
  ### 3. 输出长格式列表
  #### ls -l
  ```css
  [root@MLibra ~]# ls -l
  总用量 12
  -rw-r--r--. 1 root root 162 7月  29 14:37 ssh_host_ecdsa_key.pub
  -rw-r--r--. 1 root root  82 7月  29 14:37 ssh_host_ed25519_key.pub
  -rw-r--r--. 1 root root 382 7月  29 14:37 ssh_host_rsa_key.pub
  ```
  这里是如何读取输出 :
  - **第1列** 第一个字母**d**意味着内容是目录或者文件。如果是'-'(**减号**),这意味着它的内容是文件。当它是l(**小写l字符**),意味这内容是链接文件。下面的9个字符是关于文件权限。**前3个rwx**字符是文件的拥有者的权限,**第二组3rwx**是文件的所有组的权限,**最后的rwx**是对其他人访问文件的权限。
  - **第2列** 这行告诉我们有多少链接指向这个文件。
  - **第3列** 这行告诉我们谁是这个文件/文件夹的所有者。
  - **第4列** 这行告诉我们谁是这个文件/文件夹的所有组。
  - **第5列** 这行告诉我们这个文件/文件夹的以字节为单位的大小。 目录的大小总是4096字节。
  - **第6列** 这告诉我们文件最后的修改时间。
  - **第7列** 这告诉我们文件名或者目录名
  ### 4. 显示文件大小
  #### ls -lh
  ```css
  [root@MLibra ~]# ls -l
  总用量 4
  -rw-r-----. 1 root root 1786 7月  29 16:11 sudo.conf
  [root@MLibra ~]# ls -lh
  总用量 4.0K
  -rw-r-----. 1 root root 1.8K 7月  29 16:11 sudo.conf
  [root@MLibra ~]# ls -l --si
  总用量 4.1k
  -rw-r-----. 1 root root 1.8k 7月  29 16:11 sudo.conf
  ```
  说明:参数是**--si**。这个参数和-h参数类似,但是**-si以1000为单位,而-h以1024为单位**。
  ### 5. 排序文件大小
  #### ls /etc/ -lhS
  ```css
  [root@MLibra ~]# ls /etc/ -lhS
  总用量 1.2M
  -rw-r--r--.  1 root root 655K 6月   7 2013 services
  -rw-r--r--.  1 root root  25K 8月   6 2015 dnsmasq.conf
  -rw-r--r--.  1 root root  18K 7月  25 16:11 ld.so.cache
  -rw-r--r--.  1 root root  12K 7月  25 16:11 aliases.db
  -rw-r--r--.  1 root root 7.0K 7月  25 16:03 kdump.conf
  -rw-------.  1 tss  tss  6.9K 11月 21 2015 tcsd.conf
  ```
  说明:在我们可以显示文件大小之后,我们希望以文件大小排序。我们可以使用-S参数来这么做。这列表会从大到小排序。
  ### 6. 测量大小
  ls可以通过使用**-block-size=SIZE**改单位大小。这里的SIZE是:
  >  - M = Megabyte  G = Gigabyte  T = Terabyte P = Petabyte E = Exabyte Z = Zettabyte Y = Yottabyte
  

  比如,我们希望使用MB作为单位大小。所以语法就会像这样:
  #### ls /etc/ -lhS --block-size=M
  ```css
  [root@MLibra ~]# ls /etc/ -lhS --block-size=M
  总用量 2M
  -rw-r--r--.  1 root root 1M 6月   7 2013 services
  -rw-r--r--.  1 root root 1M 8月   6 2015 dnsmasq.conf
  -rw-r--r--.  1 root root 1M 7月  25 16:11 ld.so.cache
  -rw-r--r--.  1 root root 1M 7月  25 16:11 aliases.db
  -rw-r--r--.  1 root root 1M 7月  25 16:03 kdump.conf
  -rw-------.  1 tss  tss  1M 11月 21 2015 tcsd.conf
  ```
  ### 7. 如果我们希望只列出目录,我们可以使用**-d**选项。
  #### ls -d */
  ```css
  [root@MLibra ~]# ls -d */
  test/  test1/
  ```
  ### 8. 不打印所有者信息、 不打印组信息
  #### $ ls -g ls -G
  ```css
  [root@MLibra ~]# ls -lg
  总用量 4
  -rw-r-----. 1 root 1786 7月  29 16:11 sudo.conf
  drwxr-xr-x. 2 root    6 7月  29 16:34 test
  drwxr-xr-x. 2 root    6 7月  29 16:34 test1
  [root@MLibra ~]# ls -lG
  总用量 4
  -rw-r-----. 1 MLibra 1786 7月  29 16:11 sudo.conf
  drwxr-xr-x. 2 root      6 7月  29 16:34 test
  drwxr-xr-x. 2 root      6 7月  29 16:34 test1
  ```
  ### 9. 打印UID和GID
  #### $ ls -n
  ```css
  [root@MLibra ~]# ls -ln
  总用量 4
  -rw-r-----. 1 1000 0 1786 7月  29 16:11 sudo.conf
  drwxr-xr-x. 2    0 0    6 7月  29 16:34 test
  drwxr-xr-x. 2    0 0    6 7月  29 16:34 test1
  ```
  ### 10. 不带颜色打印
  #### $ ls --color=never
  一些Linux发行版已经对ls命令启用彩色。这会使ls以各种颜色打印列表。如果你不想要这样,你可以使用 **--color=never** 参数。
  ```css
  [root@MLibra ~]# ll --color=never
  总用量 4
  -rw-r-----. 1 MLibra root 1786 7月  29 16:11 sudo.conf
  drwxr-xr-x. 2 root   root    6 7月  29 16:34 test
  drwxr-xr-x. 2 root   root    6 7月  29 16:34 test1
  ```
  ### 11. 打印每个文件的索引号
  #### $ ls -li
  为了打印索引或者大家俗称的inode号,我们可以使用-i选项。索引号会显示在第一列。
  ```css
  [root@MLibra ~]# ll -i
  总用量 4
  67370528 -rw-r-----. 1 MLibra root 1786 7月  29 16:11 sudo.conf
  101428631 drwxr-xr-x. 2 root   root    6 7月  29 16:34 test
  10579 drwxr-xr-x. 2 root   root    6 7月  29 16:34 test1
  ```
  ### 12. 增加 / (斜线) 标记目录
  #### $ ls -p
  要这么做,使用**-p选项**。
  ```css
  [root@MLibra ~]# ll -p
  总用量 4
  -rw-r-----. 1 MLibra root 1786 7月  29 16:11 sudo.conf
  drwxr-xr-x. 2 root   root    6 7月  29 16:34 test/
  drwxr-xr-x. 2 root   root    6 7月  29 16:34 test1/
  ```
  ### 12. 排序时反转顺序
  #### $ ls -r
  你或许需要在列出条目时反转顺序。要这么做,你可以使用**-r**选项。
  ```css
  [root@MLibra ~]# ll -r
  总用量 4
  drwxr-xr-x. 2 root   root    6 7月  29 16:34 test1
  drwxr-xr-x. 2 root   root    6 7月  29 16:34 test
  -rw-r-----. 1 MLibra root 1786 7月  29 16:11 sudo.conf
  ```
  ### 13. 递归列出子目录
  #### $ ls -R
  带**-R**参数后,你可以列出包含它子目录的目录。
  ```css
  [root@MLibra ~]# ll -R
  .:
  总用量 4
  -rw-r-----. 1 MLibra root 1786 7月  29 16:11 sudo.conf
  drwxr-xr-x. 3 root   root   17 7月  29 16:57 test
  drwxr-xr-x. 2 root   root    6 7月  29 16:34 test1
  ./test:
  总用量 0
  drwxr-xr-x. 2 root root 6 7月  29 16:57 test
  ./test/test:
  总用量 0
  ./test1:
  总用量 0
  ```
  ### 15. 扩展名排序
  #### $ ls -lX  **或** $ ls --sort=extension
  你可以使用-X参数或者--sort=extension来通过扩展名来排序(译注:这样对于筛选不同类型的文件很有用)。
  ```css
  [root@MLibra ~]# ls -lX
  总用量 4
  drwxr-xr-x. 3 root   root   17 7月  29 16:57 test
  drwxr-xr-x. 2 root   root    6 7月  29 16:34 test1
  -rw-r-----. 1 MLibra root 1786 7月  29 16:11 sudo.conf
  ```
  #### 16. 通过修改时间列出
  #### $ ls -lt
  使用-t选项会按修改时间排序,新的文件在前。
  ```css
  [root@MLibra ~]# ls -lt
  总用量 4
  drwxr-xr-x. 3 root   root   17 7月  29 16:57 test
  drwxr-xr-x. 2 root   root    6 7月  29 16:34 test1
  -rw-r-----. 1 MLibra root 1786 7月  29 16:11 sudo.conf
  ```
  ### 17. 列出你的主目录
  #### $ ls ~
  要列出你的主目录,你可以用"~"(**波浪号**)来代表它。这样你就不必输入完整的目录名。让我们假设家文件名为**/home/pungki**,那么**波浪号**就对/home/pungki有意义了。
  ```css
  [root@MLibra ~]# ls ~
  sudo.conf  test  test1
  ```
  ### 18. 列出父目录
  #### $ ls ../ 这回列出**1**层之上的目录内容。
  无论你在那个目录,你可以列出父目录而不必输入完整路径。这是个例子。
  #### $ ls ../../ 这回列出**2**层之上的目录内容。
  ### 19. 打印ls命令版本
  #### $ ls --version
  使用--version参数打印它。
  ```css
  [root@MLibra ~]# ls --version
  ls (GNU coreutils) 8.22
  Copyright (C) 2013 Free Software Foundation, Inc.
  许可证:GPLv3+:GNU 通用公共许可证第3 版或更新版本
  。本软件是自由软件:您可以自由修改和重新发布它。
  在法律范围内没有其他保证。
  由Richard M. Stallman 和David MacKenzie 编写。
  ```
  ### 20. 单独行列举文件。
  #### ls -1
  ```css
  [root@MLibra ~]# ls -1
  sudo.conf
  test
  test1
  ```
  ### 其他
  #### 列出当前目录中所有以“t”开头的目录的详细内容,可以使用如下命令:
  `命令:ls -l t*`
  #### /opt/soft 文件下面的子目录
  `命令:ls -F /opt/soft |grep /$`
  #### 列出 /opt/soft 文件下面的子目录详细情况
  `**命令**:ls -l /opt/soft | grep "^d"`
  #### 列出目前工作目录下所有名称是s 开头的档案,愈新的排愈后面,可以使用如下命令:
  `命令:ls -ltr s*`
  #### 列出目前工作目录下所有档案及目录;目录于名称后加"/", 可执行档于名称后加"*" **
  `**命令**:ls -AF`
  #### 计算当前目录下的文件数和目录数
  `ls -l * |grep "^-"|wc -l ---文件个数`
  `ls -l * |grep "^d"|wc -l    ---目录个数`
  ####  在ls中列出文件的绝对路径
  `命令:ls | sed "s:^:`pwd`/:"`
  #### 列出当前目录下的所有文件(包括隐藏文件)的绝对路径, 对目录不做递归
  `命令:find $PWD -maxdepth 1 | xargs ls -ld`
  #### 递归列出当前目录下的所有文件(包括隐藏文件)的绝对路径
  `命令: find $PWD | xargs ls -ld`
  #### 指定文件时间输出格式
  `命令:ls -tl --time-style=full-iso`
  `ls -ctl --time-style=long-iso`
  #### 列出/etc/目录下以字母a开头且以字母e结尾的目录和文件。
  `ls /etc/a*e`
  #### 列出/bin/目录下以字母b开头的目录和文件,且目录名或文件名的长度为2.
  `ls /bin/l?`
  #### 分屏显示
  `ls |more`
  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-461859-1-1.html 上篇帖子: linux文档整理 下篇帖子: linux 下的ps命令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表