一、处理目录的常用命令
Linux系统中使用以下命令来查看文件的内容
- cat 由第一行开始显示文件内容
- tac 从最后一行开始显示,可以看出tac是cat的倒着写
- nl 显示的时候,顺道输出行号!
- more 一页一页的显示文件内容
- less 与more类似,但是比more更好的是,他可以往前翻页
- head 只看头几行
- tail 只看尾巴几行
你可以使用 man [命令] 来查看各个命令的使用文档,如: man cp
(1)ls列出目录
选项与参数:
- -a : 全部的文件,连同隐藏文件(开头为.的文件)一起列出来;(常用)
- -l : 长数据串列出,包含文件的属性与权限等等数据;(常用)
举个栗子:
①将家目录下的所有文件列出来(含属性与隐藏档) -
ls -al ~
②当然了你也可以ls后面跟具体的文件,查看某单个文件详情信息
ls -l test.text
③还可以在ls后面跟具体目录下的文件夹
(2)cd(切换目录)
这个就不再讲啦,大家应该用的很多~
(3)pwd(显示目前所在的目录)
pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。
(4)mkdir (创建目录)
①基本使用方法,我这里是提示文件已经存在了奥。
②我们还可以在 mkdir 后面跟个 -m 权限 文件名
不设置权限 默认是给他个755的权限。
mkdir -m 777 test2
但是如果我们想递归的创建该怎么办呢?
③如果还是mkdir aa/bb/cc 他是创建不成功的,因为aa存在,bb不存在,你去创建cc就报错了,那怎么办?加参数 -p
mkdir -p aa/bb/cc
(5)rmdir(删除空的目录)
注意哦,只能删除空的文件夹哦!
但是上面我们刚递归创建了一个文件夹,mkdir aa/bb/cc ,那这个时候我们该怎么删除呢?
我们也可以加个参数 -p 递归的删,从cc开始删,cc没内容就删掉,然后到bb,如果bb没内容也就直接删掉
rmdir -p aa/bb/cc
(6)cp(复制文件或目录)
①基本使用场景
# cp [被复制的文件] [给复制出来的文件起个名字]
cp test.txt testCopy.txt
②复制几个文件到文件夹
# cp 文件1 文件2 目标目录
cp testCopy.txt test.txt aa
③cp -p 连同文件的属性一起复制过去,而非使用默认属性(备份常用)
我们看下图,我首先将test.txt文件设置权限777,也就是rwxrwxrwx
然后我们使用命令 cp test.txt testCopy.txt
接着我们查看复制出来的文件testCopy.txt的属性 发现是755,也就是说是rwxr-xr-x
说明使用 cp去复制文件 并不能把文件的属性一起复制过去。
好,重点来了,那我们用 cp -p试试看。
由上图可知,目前现在有2个文件,test.txt的权限是777,testCopy.txt的权限是755,我们使用 cp -p再复制一份文件testCopy2.txt试试看
由下图可以看出来,cp -p能够连同文件的属性一起复制过去。
④cp -a:相当于 -pdr的意思,至于 pdr 请参考下列说明(常用)
⑤cp -d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
简单来说就是如果你复制的是一个链接,那复制返回的就是一个链接而非文件本身。
⑥cp -f:为强制(force的意思,若目标文件已经存在且无法开启,则移除后再尝试一次)
简单来说就是 如果这个目标文件已经存在了,那我就把他删掉然后再添加一个同样的名字,也就是覆盖。
⑦cp -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
简单来说就是覆盖之前 给个提示。
⑧cp -r:递归持续复制,用于目标的复制行为(常用)
⑨cp -s:复制成为符号连结档(symbolic link),亦即【捷径】文件
⑩cp -u:若destination比source旧才升级destination!
就是拷贝的文件比我们的文件新的话 那我才去覆盖。
(7)rm(移除文件或目录)
①rm -f:就是force的意思,忽略不存在的文件,不会出现警告信息
②rm -i:互动模式,在删除前会询问使用者是否动作
③rm -r:递归删除,最常用在目录的删除了,这是非常危险的选项
(8)mv(移动文件与目录,或修改名称)
①改名
# 改名字
# mv 原有名字 现有名字
mv test.txt test.sh
②移动
# mv 移动
# 移动这2个文件到aa这个文件夹里
mv test.sh test.txt aaa