文件管理
最后更新于:2022-04-02 05:41:04
[TOC]
## 前言
通过本教程你将熟悉linux文件的基本操作以及其具体使用。本文目录结构摘抄自《鸟哥的LINUX私房菜》基础学习篇(第三版)。
**备注:** 本文只摘录了部分书中内容,对于部分知识点不会做详尽的解读,只保留高频使用的部分,以供大家理解和查阅。
![图解linux文件操作](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/cdfd5e3f34ca86213e89fa3e562eb865_1117x606.png)
## 目录与路径
### 相对路径与绝对路径
| 路径分类 | 特征 |说明 |
| --- | --- | --- |
| 绝对路径 | / ~| 需要写完整的路径,需要从根路径开始,路径名一般较长,精确 |
| 相对路径 | ../ ./或者不带任何符号 | 不需要写完整的路径,根据当前的路径去定位路径,../代表上一级,而不写路径代表在当前路径的同级中查找 |
### 目录的相关操作
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/905daa9766cc17ad62bc7224bd7cfaa6_680x942.png)
**表格说明 :**
| 命令 | 功能 | 备注 |
| --- | --- | --- |
| cd | 切换目录(相对或者绝对路径) | 包括:.. 上一级 ./ 当前目录 ~ 当前根目录 |
| pwd |当前目录 | -p可以控制显示直接路径而非链接路径 |
| mkdir [-mp] | 创建文件夹 | m为控制权限,p控制层次,如果创建的为多层目录,增加-p参数可以;否则会提示没有该目录 |
| rmdir [-p] |删除空文件夹 | -p可以同时删除上一级的空目录,不建议 |
| rm [-fir] | 删除文件或目录 | 常用删除非空文件夹:rm -rf files ;如果不加-r,删除非空文件夹会报错 |
| cp [-adfilprsu] source 目标档| 复制文件或目录 | 配置项参考教程 ,复制文件夹 cp -rf |
| mv [-fiu] source destination | 移动文件或者目录 | 也可以叫重命名|
**注意事项 :**
- 权限概念,默认加的文件或者文件夹都是有权限的,但这个权限和umask有关,如果你想设置别的权限,需要给-m 711来给其权限。
- 使用tab可以根据已经输入的名字进行自动匹配找到其路径的文件或者文件夹的名字,如果没有反应会有错误的提示,可能是两种原因,1 该前缀没有匹配 2 匹配到了多个,如果是多个下面会给一个匹配到的多个结果,根据自己的需要进行继续。
- 当你对某个文件没有操作权限的时候,可以通过`chmod -R 777 /xx/ ` 来给文件夹赋予操作权限,777为最高权限。
### 执行文件路径的变量
我们知道执行任何的操作都需要底层命令的支持,而一般情况下命令的支持脚本是不在我们的应用目录的,比如bin/ls 查看文件的命令,可以在任何位置使用ls。
能够这样支持,是因为我们有设置路径变量,设置之后会按照我们定义的路径去找对应的可执行文件。
对于这部分,不详细讲,有兴趣得可以通过echo $PATH 查看自己系统中已经命名好的变量。每个变量用冒号隔开。
~~~
[root@iiii /]# echo $PATH
/root/.nvm/versions/node/v7.4.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
~~~
## 文件与目录的管理
更多详情参考文档:[linux文件操作](http://www.runoob.com/linux/linux-file-content-manage.html)
### 查看文件目录
`ls `可以查看文件目录,如果想查看更详细的,可以ls -l可以查看到文件被创建时的文件性质,权限,文件所属的用户和组。
~~~
[root@www /]# ls -l
total 64
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot
……
~~~
其中第一个字符分别代表如下含义 :
| 符号 | 代表 |
| --- | --- |
| d| 目录 |
| - | 文件 |
| l | 链接文档 |
| b | 可供储存的接口设备 |
| c| 装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置) |
### 目录的管理(复制删除与移动)
| 命令 | 功能 | 备注 |
| --- | --- | --- |
| rm [-fir] | 删除文件或者目录 | 常用删除非空文件夹:rm -rf files |
| cp [-adfilprsu] source 目标档| 复制文件或目录 | 配置项参考教程 ,复制文件夹 cp -rf |
| mv [-fiu] source destination | 移动文件或者目录 | 也可以叫重命名|
### 取得路径的文件名与目录名
在具体的路径中,我们很多时候分不清哪个是文件名,哪个是目录名,通过dirname和basename可以分清楚这部分。通过下面的代码我们可以得出index为一个文件名,而其上一级为目录名。(某些时候需要根据某个路径是文件的路径还是目录的位置来决定是新增目录还是文件。)
~~~
[root@iZbpZ /]# basename /robin/demo2/index
index
[root@i8Z /]# dirname /robin/demo2/index
/robin/demo2
~~~
## 查看文件内容
### 基本查看与数据选取
| 命令 | 说明 |备注 |
| --- | --- | --- |
| cat | 从正文第一行开始看 | |
| tac | 从最后一行开始看 | |
| nl |显示的时候追加行号 | |
| more/less | 按照页显示内容|less更好的是可以向前翻页 |
| head | 只看头几行 | |
| tail |只看尾部几行 | |
**说明**:实际使用中我们一般常用的是cat 查看基本的配置文件内容;tail -n number log 查看日志文件。
**备注 :**
- 二进制文件是无法正常查看的,会是乱码信息的,我们通过od命令进行查看:od -t type 文件,不过即使这样还是看不出其内容代表什么。这类的文件比如图片、表格等。
- 修改文件时间(略)
### 分页查看
当文件的内容很多的时候,可以根据屏幕的显示空间进行分页显示的控制。还是以刚才的网页文件为例:当翻到最后的时候会跳出文件。
| 命令 | 作用 |
| --- | --- |
| 空格 | 下一页 |
| 回车 | 向下滚动一行 |
| /字符串 | 向下查询字符串关键字 |
| :f | 立刻显示文件名以及目前显示的行数 |
| q | 离开文件,不再显示 |
| b| 向上翻页,只对文件有效,对管道无效 |
~~~