Linux基础学习 | 文件目录管理

Linux基础学习 | 文件目录管理Linux是一切皆为文件,所以必须要熟悉Linux文件目录操作的命令,本篇文章就介绍一些关于Linux文件和目录管理的命令。

前言

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参数来递归创建。

image.png

这里可以发现mkdir默认的权限是755,对于同组的其他用户和其他用户是没有写权限的,这里可以直接在创建文件时修改其权限。

rmdir和rm

rmdir用来删除空的目录,注意这里是空的目录,而且是当前目录的;如果想和mkdir一样去删除多层的目录,需要加上-p参数:

image.png

对于非空的目录需要使用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

经过上面打包后就生成了一个备份文件,我们可以查看一下这个备份文件有多大:

image.png

可以发现有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个备份压缩文件:

image.png

从这里我们可以看出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

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注