Linux命令系列之ls——原来最简单的ls这么复杂

ls命令应该是我们最常用的命令之一了,但是我们可能容易忽略那些看起来最简单的东西 。
简介ls命令的使用格式如下
ls [选项] [具体的文件] # [] 表示可选

  • 直接在命令行输入ls将当前目录下的列出当前目录下的文件和目录 。
$lsLICENSE  README.md  hello.c
  • 也可以指定具体的目录和文件
$ls /bin   dev  home  lib32  libx32  mnt  proc  run   srv  tmp  varboot  etc  lib   lib64  media   opt  root  sbin  sys  usr
  • 展示隐藏文件(所谓隐藏文件就是以.开头的目录或者文件),增加-a选项 。
$ls -a.  ..  .git  LICENSE  README.md  hello.c # . 表示当前目录 .. 表示上一级目录
  • 展示文件的详细信息 。
$ls -altotal 44drwxr-xr-x 3 root root  4096 Oct  6 04:20 .drwx------ 1 root root  4096 Oct  7 03:16 ..drwxr-xr-x 8 root root  4096 Aug 26 15:28 .git-rw-r--r-- 1 root root 18027 Aug 26 15:28 LICENSE-rw-r--r-- 1 root root   210 Aug 26 15:28 README.md-rw-r--r-- 1 root root    72 Aug 26 15:32 hello.c详细信息说明我们现在来仔细分析一下ls输出结果:
第一行 total 44,表示这个目录下面所有的文件的大小总和,单位是KiB
然后是接下来的每一行,每一行的开头都有10个字符 , 他们的含义具体如下:
文件类型说明第一个字符,有的是d, 有的是-,在linux系统当中,这第一个字符表示文件的类型 , 他有如下几种类型:
  • 【Linux命令系列之ls——原来最简单的ls这么复杂】d,表示目录 , 比如说上面的.当前目录 , ..上一级的目录 。
  • - , 表示一般的文件 , 比如说上面的hello.c.
  • b , 表示块设备,比如我们的磁盘就是一种块设备,他们的这个位置都是b
$ls -al /dev/ | grep sdabrw-rw----  1 root disk      8,   0 Apr 30 23:16 sdabrw-rw----  1 root disk      8,   1 Apr 30 23:16 sda1brw-rw----  1 root disk      8,   2 Apr 30 23:16 sda2brw-rw----  1 root disk      8,   3 Apr 30 23:16 sda3
  • l,表示一个符号链接文件,也叫做软链接 。比如我们创建一个软链接文件,并且查看它,软链接就相当于windows中的快捷方式,它并不真正的去存储数据,简单说来只是存储来一个指向一个文件的链接 。
$ln -s hello.c softlink.c$ls -altotal 52drwxr-xr-x 3 root root  4096 Oct  7 03:39 .drwx------ 1 root root  4096 Oct  7 03:33 ..drwxr-xr-x 8 root root  4096 Aug 26 15:28 .git-rw-r--r-- 1 root root 18027 Aug 26 15:28 LICENSE-rw-r--r-- 1 root root   210 Aug 26 15:28 README.md-rw-r--r-- 3 root root    72 Aug 26 15:32 copy.c-rw-r--r-- 3 root root    72 Aug 26 15:32 dcopy.c-rw-r--r-- 3 root root    72 Aug 26 15:32 hello.clrwxrwxrwx 1 root root     7 Oct  7 03:39 softlink.c -> hello.c # 这里就表示是软链接