linux命令笔记之ls
来源:互联网 发布:安卓怎么伪造mac 编辑:程序博客网 时间:2024/06/05 15:32
如果要将所有的命令以一篇博客持续更新的方式去展现,将来在查找的时候非常不方便。出于这样的考虑,将来将很多命令都分开记录。
这里,一些基础用法都不做太多说明。主要记录下平时经常用到的一些命令。
命令: ls -[options] [操作对象]
- 进入目录之后反查当前目录信息
使用参数d即可。eg: hicode@test:~/lab/dir$ ls1.md 2.md 3.md 4.md 5.md 6.md想反查看dir目录的信息hicode@test:~/lab/dir$ ls -lddrwxrwxr-x 3 hicode hicode 4096 Jul 1 01:17 .
注意的是,目的数不是目录时也可以查询。
证明如下:
hicode@test:~$ ls -ld testdrwxrwxr-x 2 root root 4096 Jun 26 23:54 testhicode@test:~$ ls -ld music.raw -rw------- 1 hicode hicode 1180762112 Dec 24 2013 music.raw
- 仅列出当前目录下的所有一级子目录
没有直接命令,使用grep
进行筛选,标志是ls 加上 -p后会给目录文件加上/符号
-p, –indicator-style=slash
append / indicator to directories
eg:hicode@test:~$ ls -lp |grep /drwxr-xr-x 3 hicode hicode 4096 Dec 27 2013 Desktop/drwxr-xr-x 2 hicode hicode 4096 Nov 7 2013 Documents/drwxr-xr-x 2 hicode hicode 4096 Dec 25 2013 Downloads/drwxrwxr-x 7 hicode hicode 4096 Dec 9 2013 gothonweb/drwxrwxr-x 3 hicode hicode 4096 Jul 1 01:15 lab/drwxrwxr-x 4 hicode hicode 4096 Dec 24 2013 labs/
另一种方法是ls -l
显示的记录中,目录都是以d
开头的。
ls -l |grep ^d
- 仅列出文件
可写成ls -lp | grep [^/]$
原理:即列出所有不以/
结尾的输出,该输出来自ls -lp
hicode@test:~$ ls -lhpa |grep '[^/]$'total 1.2G-rw------- 1 hicode hicode 29K Jul 1 00:49 .bash_history-rw-r--r-- 1 hicode hicode 220 Nov 7 2013 .bash_logout-rw-r--r-- 1 hicode hicode 3.5K Nov 7 2013 .bashrc-rw------- 1 hicode hicode 32M Dec 25 2013 core-rw-r--r-- 1 hicode hicode 34 Jun 26 23:52 .dmrc-rw-r--r-- 1 hicode hicode 8.3K Nov 7 2013 examples.desktop
或者使用另外的方法:ls -l显示的文件都是以-开头作为文件标志
。因此也可以这么写,这个好理解。
icode@test:~$ ls -l |grep ^--rw------- 1 hicode hicode 33206272 Dec 25 2013 core-rw-r--r-- 1 hicode hicode 8445 Nov 7 2013 examples.desktop-rw-rw-r-- 1 hicode hicode 279 Aug 1 2005 hosts-rw-r--r-- 1 hicode hicode 26 Jun 24 22:28 issue-rw-rw-r-- 1 hicode hicode 176 Jun 24 21:46 log1.txt-rw-rw-r-- 1 hicode hicode 4617 Jan 12 2009 man.config
- 查看当前目录下文件的数目,在之前的命令上追加管道命令
|wc -l
(WordCount -lineNumber)
hicode@test:~$ ls -l |grep ^- |wc -l (文件)15hicode@test:~$ ls -lp |grep ^d |wc -l (目录)19hicode@test:~$ ls -lp |wc -l (所有)35 15+19 not eq 35 (34.)hicode@test:~$ ls -lp |grep ^d |wc -l19hicode@test:~$ ls -lp |grep ^[^d] |wc -l16hicode@test:~$ ls -l |grep ^[^d-] (soga,原来还有一行统计项)total 1166396 原来还有一行
ls
不能显示目录树结构,下载tree
即可。
sudo apt-get install tree
usage:tree --help
非常好用, 和ls一样,默认不输入路径则为当前目录
hicode@test:~/lab$ tree.├── a.txt├── b.txt├── c.txt├── dir│ ├── 1.md│ ├── 2.md│ ├── 3.md│ ├── 4.md│ ├── 5.md│ ├── 6.md│ └── sadf├── d.txt└── e.txt2 directories, 11 files
- 仅列出当前目录所有的隐藏文件
ls -d .* |grep ^-
原理:参数.*
为通配符模式,不是正则。默认在当前目录 下通配。.
也可以是隐藏文件夹的标志。
证明如下
hicode@test:~$ ls -ld .*|wc -l40hicode@test:~$ ls -ld .*|grep ^d |wc -l26hicode@test:~$ ls -ld .*|grep ^- |wc -l14
既然使用-d
可以查看文件,那么用-a
加上通配符.*
能否起到相同的作用呢
icode@test:~$ ls -la ./.* |wc -l309
????????????
测试的时候发现加上a
之后,后面的通配符选择的是目录,而不会是文件,它会把所有的.*能匹配上的目录都执行一遍。也就是说这条命令是很多条ls -la .aa ,ls -la .. ,ls -la . 等等
命令的集合。加上a
是命令的集合,加上d
却是当前目录下条目的集合。。有点意思。
- linux命令笔记之ls
- Linux命令之LS
- Linux命令之ls
- Linux命令之ls
- Linux命令之ls
- linux命令之ls
- linux命令之ls
- Linux命令之 ls
- Linux命令之ls
- linux命令之ls
- Linux命令之ls
- Linux命令之ls
- Linux之ls 命令
- 菜鸟的Linux学习笔记之命令ls
- linux学习笔记之命令的基本格式及ls
- linux命令学习之ls
- linux基本命令之ls
- linux命令之ls 、cd
- 日期控件 pikaday
- 正则表达式
- JAVA8 String.join 字符串拼接
- Ubuntu下配置tftp服务和NFS服务
- c++调用python
- linux命令笔记之ls
- Matrix-chain product 矩阵链乘积
- 如何用js得到当前页面的url信息方法(JS获取当前网址信息)
- C语言判断一棵树是否为完全二叉树
- unknow error:java.lang.NullPointerException
- word设置密码
- svn cleanup failed-previous operation has not finished; run cleanup if it was interrupted
- mapreduce任务执行过程详细分析--源码级分析
- border-collapse设置表格和单元格边框合并