linux的文件与目录管理
前言:前一篇认识了linux系统下的文件权限概念以及目录的配置,下面我们进一步的操作和管理文件以及目录,包括在不同的目录之间进行切换,建立与删除目录,建立与删除文件,寻找文件,查看文件内容等。
1.相对路径与绝对路径
绝对路径:路径的写法由根“/”写起
相对路径:路径的写法不是由根“/”写起
相对路径的用途:
在平时使用linux服务器时,频繁的切换目录是必不可少的,这时相对路径就很有用了,总不能切换一次路径都由根写起吧
绝对路径的用途:
对于文件名的正确性来说,绝对路径的正确度要好一些,比如在写shell脚本时,最好是使用绝对路径
2.目录的相关操作
首先要注意的一点是,在任何一个目录下,都会存在两个特殊的目录,分别是"."和"..",分别代表此层和上层的意思
常用的几个关于目录的命令:
cd: 切换目录 (change directory的缩写)
pwd:显示当前目录 (print working directory的缩写)
mkdir:建立新目录 (make directory的缩写)
rmdir:删除一个空目录 (remove directory的缩写)
3.关于执行文件路径的变量:$PATH
你有没有想过为什么我们常用的命令,例如ls,pwd等在任何目录下都可以执行?
就是因为环境变量PATH的帮助,当我么执行命令的时候,系统就会依据PATH的设置去每个PATH定义的目录下查找文件名和我么输入的命令相同的可执行文件,如果在PATH定义的目录中含有多个文件名和我们输入的命令一样的可执行文件,那么先被找到的同名命令执行。
你可以使用 echo $PATH 查看你的系统目前PATH包含的路径有哪些:
PATH一定要大写,你会发现这个变量的内容是由一堆目录所组成,每个目录中间使用冒号":"分割,每个目录有顺序之分。
如果你想将自己的某个目录加入到PATH中,也非常简单,如下:
4.文件与目录的管理
4.1 文件与目录的查看:ls
其常用选项有 -a :查看全部文件,包括隐藏文件
-d :仅列出目录文件
-l :详细信息显示,包含文件的属性与权限等信息
4.2 复制,删除与移动:cp,rm, mv
cp不仅可以复制,还可以建立链接文件(就是快捷方式),cp常用选项:
-r 递归复制,用于多层目录的操作
-p 连同文件的属性一起复制过去,而非使用默认
-s 建立软链接
rm删除文件或目录
mv移动文件或目录,或重命名
5.获取路径的文件名或目录名称
1.basename 获取路径的文件名
语法:
basename “路径”
2.dirname 获取路径的目录名称
语法:
dirname “路径”
6.文件内容查看
常用命令:
cat:由第一行开始显示文件内容
tac:从最后一行开始显示,与cat相反
nl:显示的时候,同时输出行号
more:一页一页的显示文件内容
less:与more类似,但是可以往前翻页
head:只看前几行内容
如果指定行数,选择 -n选项 head -n “行数” filename
tail:只看后几行内容
如果指定行数,选择 -n选项 tail -n “行数” filename
od:以二进制的方式读取文件内容
7.创建文件
touch
8.文件与目录的默认权限
8.1文件默认权限:umask
我们现在会创建文件或者目录了,那么他们的默认权限是什么?umask就是指定目前用户在建立文件或者目录时候的权限默认值。 查看umask:
我们看到0022四位数字,我们忽略掉第一位特殊权限,也就是022分别代表了三组数字权限
默认情况下:
建立文件默认没有可执行权限,只有rw,可读可写,最大就是666,也就是 -rw-rw-rw-,建立目录由于x与进入目录有关,则默认所有权限放开,即777,也就是drwxrwxrwx
但是需要注意的是,umask的数字指的是默认值需要减掉的权限
那么也就是说,在我们建立文件或目录时真正的权限是什么呢,就是在上面的基础上减掉对应的权限,
文件:644 ,即 -rw-r--r--
目录:755,即 drwxr-xr-x
9.命令与文件查找
9.1 脚本文件的查找
which [-a] commad 查找执行文件
-a 将所有由PATH目录中可以找到的命令全部列出,而不止第一个被找到的
注:这个命令是根据PATH这个环境变量所规范的路径,去查找执行问价的文件名,bash内置的一些命令用该命令是查不到的,例如,history
9.2 文件的查找
常用命令whereis,locate, find
一般都是先用whereis或者locate查找,如果实在是没找到再使用find,因为
whereis只找系统中某些特定的目录,
locate只是利用数据库来查找,
所以说whereis和locate速度很快,
但是find会查找硬盘内的文件,就会很慢