前言
Linux是一切皆为文件,所以必须要熟悉Linux文件目录操作的命令,本篇文章就介绍一些关于Linux文件和目录管理的命令。
正文
在前面介绍Linux系统目录时,我们就知道Linux的目录结构为树状结构,而最顶级的目录为跟目录/。其他目录通过挂载添加到树中,也可以通过解除挂载移除。
这个跟目录/符号特别重要,因为这个涉及绝对路径和相对路径概念,这里必须要知道:
- 绝对路径:路径由跟目录/写起,例如:/usr/share/doc这个目录。
- 相对路径:就是相当于当前路径写起,这里主要涉及..这个硬链接符号,表示上一级目录,例如由/usr/share/doc要到/usr/share/man下面,可以用: cd ../man即可。
下面我们来介绍一些处理目录的常用命令。
ls
ls即list files,列出目录和文件名,这个比较容易,常用的选项参数有下面几个:
- -a:全部的文件,包括隐藏文件一起都列出来。
- -l:长数据串列出,包含文件属性、权限等等数据。
- -R:递归显示,可以显示出文件夹下文件。
cd
cd即Change Directory,用来切换工作目录,其中目录在文章最开始时说了,可以使用绝对路径或者相对路径。
pwd
pwd即Print Working Directory,用来显示目前所在目录的命令,这个命令有个选项参数需要注意,就是-P显示出真实的路径,而非使用链接(link)的路径。
关于Linux文件的链接相关知识可以查看文章:# Linux基础学习 | 软链接和硬链接
mkdir
mkdir即make directory,用来创建新目录,这个命令我们会经常使用,其中有2个选项参数比较常用:
- -m:配置文件的权限,这样可以不需要在创建完再修改其默认权限。
- -p:直接将所需的目录递归创建,这什么意思呢?我们正常可以使用mkdir a来创建a目录,但是不可以使用mkdir a/a来创建a/a目录,这时需要使用-p参数来递归创建。
这里可以发现mkdir默认的权限是755,对于同组的其他用户和其他用户是没有写权限的,这里可以直接在创建文件时修改其权限。
rmdir和rm
rmdir用来删除空的目录,注意这里是空的目录,而且是当前目录的;如果想和mkdir一样去删除多层的目录,需要加上-p参数:
对于非空的目录需要使用rm命令来删除。
对于rm命令,我们最熟悉的选项参数就是-f即force强制删除,-r递归删除了。
mv
mv用来移动文件与目录,或者修改名称。这个和rm命令一样,选项参数常用的就是-f和-i,其中-f表示强制覆盖,而-i表示如果目标文件存在则会询问是否覆盖。
查看文件
Linux系统查看内容的命令有很多,这里简单介绍几个,其中尤其要学会如何在查看时做一些操作。
cat
由第一行开始显示文件内容,这里的效果是不论文件长短,都会一下子显示出来,如果文件内容较短还好查看,要是特别长的文件,比如查看Android的framework中一些代码文件,将是噩梦般的存在。
tac
从命令名字就可以看出这个cat反过来的效果,从文件内容最后一行开始显示,和cat同样的问题,不方便查看长文件。
more
一页一页翻动,这个就比前面cat查看长文件更方便了,在more这个程序的运行过程中,有几个按键操作是可以执行的,如下:
- 空白键(Space):下翻一页;
- Enter:下翻一行;
- /字串:在这个显示的内容当中,向下搜寻该字串;
- f:立即显示出档名以及目前显示的行数;
- q:离开more,不再显示该文件内容;
- b:代表往回翻页。
这里的/子串需要注意,并不是全部搜索,而是在当前文件中搜索到符合的子串,跳到这里继续浏览。
less
也是一页一页翻动,类似于上面的more,不过这个命令在执行中的操作就比上面more更加人性化,在less程序运行过程中,有几个按键操作是可以执行的,如下:
- 空白键:向下翻动一页;
- 上下左右键:翻动一行和调整左右区域;
- pageDown和pageUp:下翻和上翻一页;
- /子串:向下搜索该子串,并且高亮显示;
- ?子串:向上搜索子串,并且高亮显示;
- n:重复前一个搜寻;
- N:反向的重复前一个搜寻;
- q:离开less这个程序。
使用less就可以更加人性化的使用搜索子串功能了。
head
取出文件前面几行,可以跟参数-n表示显示几行。
tail
取出文件最后几行,可以跟参数-n表示显示几行。
打包和压缩
在Windows中,打包和压缩是一个动作,后缀就是.zip,但是在Linux中打包和压缩是2个动作,打包的命令是tar,可以对打包后的文件进行压缩存储,压缩的命令是gzip和bizp2,经常使用的扩展名为.tar.gz、.tar.bz2、.tgz等。
这里我们对Linux的/etc目录进行打包:
// 这里的c表示create创建新目录,f表示打包的结果,是文件,这是因为在Linux很久之前打包结果是磁盘,现在一般都是文件
tar cf /tmp/etc-backup.tar /etc
经过上面打包后就生成了一个备份文件,我们可以查看一下这个备份文件有多大:
可以发现有8.6M大小。
对于打包后的文件,我们可以使用gzip或者bzip2来进行压缩,但是tar命令其实就集成了压缩功能,这里我们只需要修改tar命令的选项即可:
// 这里多个z就表示使用gizp进行压缩,并且生成的文件加个.gz后缀,表示它是gizp压缩后的文件
tar czf /tmp/etc-backup.tar.gz /etc
同样我们可以使用bizp2来进行压缩,就把上面的z改成j即可,然后改一下后缀名:
tar cjf /tmp/etc-backup.tar.bz2 /etc
执行完上面操作后,我们可以查看一下tmp目录下的备份文件和2个备份压缩文件:
从这里我们可以看出bzip2的压缩比例更高,它只有1.7M,比gizp压缩后的1.9M更小。
打包压缩后,我们可以对其进行解包、解压缩,前面说的打包命令是c(create,建立新的存档),解包命令是x(extract,从存档展开文件),然后根据压缩的名字,选择解压缩的方式是z还是j,所以我们使用如下命令来解压缩前面打包压缩的文件:
//使用gzip解压缩,-C表示转到指定的目录
tar zxf /tmp/etc-backup.tar.gz -C /root
这里小节一下,打包压缩就是tar命令,涉及参数如下:
- c:打包
- x:解包
- f:打包以文件格式
- z:gzip方式
- j:bzip2方式
总结
本篇文章内容较为简单,首先要文件目录有绝对路径和相对路径这2种表示,然后就是几个目录管理的命令,其中非常不错的就是less命令,查看、搜索长文件中关键词很好用。
笔者水平有限,文中有问题,欢迎指正。最后记录一下Flag。# 一个Android开发的学习Flag记录贴
今天的文章Linux基础学习 | 文件目录管理分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/19416.html