文件管理
- 创建、删除文件
- 复制、剪切文件
- 查看文件内容
- 修改文件内容
- 软链接
一、创建、删除文件
1.1、touch(创建文件、修改文件属性)
基本语法:touch [可选项] 文件名
功能描述:新建一个文件,或者修改文件的属性。比如:touch /home/test/test.text
- -a <日期时间>:更改文件的最后访问日期时间。
- -m <日期时间>:更改文件的最后更新日期。
- -r 文件名:使用与后者相同的时间戳。比如:
touch -r /home/frist.text /home/test/test.text
- -c:禁止创建文件(表示当前操作是针对文件的修改操作)
1.2、rm(删除文件)
基本功能:rm [可选项] 文件名
功能描述:删除指定的文件
- -i:进行任何删除操作前必须先逐一确认。
- -f:忽略不存在文件、文件属性(只读/隐藏)强行删除,不显示任何提示信息。
- -r:向下递归删除所有文件、目录。(建议带着-f一起使用,不然需要很多次确认)
- -rf:直接删除,跟windows里面选中delete一样的效果,啪~没了。
rm -rf:会直接删除当前所在目录的所有文件、目录,慎用!
同时删除多个文件/目录时,在文件名中间用空格隔开就行了
二、复制、剪切文件
2.1、cp(复制文件)
基本语法:cp [可选项] 文件 目录
- -a:效果等同于-dpr,递归复制(整个目录),包含源文件状态、权限等
- -d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身
- -p:同时复制文件的属性信息(ls -l可以查看属性)。
- -r:向下递归复制一整个文件目录。
- -f:目标文件夹有同名的文件/目录时直接覆盖。
- -i:文件覆盖前询问。
\cp 源文件 目标:强制覆盖复制
2.2、mv(剪切文件、修改名称)
基本语法:mv [可选项] 文件名 [path]
- -f:force强制的意思,如果目标已存在,不询问直接覆盖。
- -i:若目标文件已存在,将询问是否覆盖
- newName:更改文件名(
mv oldName newName
)
一、将文件Test1.text移动到当前目录下的Test1目录里面
mv Test1.text Test1
二、将Test1目录移动到Test2目录里面
mv Test1 Test2
三、将Test1.text更名为new.text
mv Test1.text new.text
四、将Test1目录更名为new
mv Test1 new
三、查看文件内容
3.1、cat
基本语法:cat [可选项] 文件名
以只读的方式打开文件,显示文件内容
- -n:显示行号
- | more:将文件内容分页显示(按空格翻页)。例如:cat /etc/profile | more
3.2、head指令
基本语法:head 文件
基本功能:显示文件中的头部内容,默认是前10行
- -n 行数:显示指定行数内容
3.3、tail指令
基本语法:tail 文件名
基本功能:显示文件中的尾部内容,默认是后5行
- -n 行数:显示指定行数内容
- -f:实时追踪该文档的所有更新,工作中经常使用
3.4、more指令
基本语法:more 文件名
以全屏的方式显示文件内容
more指令内置的快捷键
- 空格(space):向下翻一页
- Enter:向下翻一行
- q:代表立刻离开more,不再显示该文件内容
- Ctrl+F:向下滚动一屏
- Ctrl+B:向上滚动一屏
- =:输出当前行的行号
- :f:输出文件名和当前行的行号
3.5、less指令
基本语法:less 文件名
功能和more类似,都是以全屏的方式显示文件内容,但是功能比more更加强大。效率很高,适合用来查看小说、日志文件。
less指令的快捷键
【留坑】
3.6、echo指令
基本语法:echo [可选项] 输出内容
基本功能:输出内容到控制台
- -e:开启转义,即允许字符转义
- 显示普通字符串(双引号可以省略):
echo "hello word"
- 显示转义符:
echo "\"It is a test\""
- 显示换行:
echo -e "第一行\n第二行"
- 显示不换行:
echo -e 第一部分\c
,echo 第二部分
- 显示结果定向至文件(覆写):
echo "It is a test" > myfile
- 原样输出字符串(不进行任何转义):
echo '$qwer"'
,结果:$qer" - 显示命令执行结果(注意`date`不是单引号):
echo 'date'
,结果:2017年 05月 02日 星期六 01:30:46 CST
四、修改文件内容
4.1、>(覆写)
基本语法:ls -l > 文件
将列表内容写入到文件中(覆盖写)
4.2、>>(追加)
基本语法:cat 文件1 >> 文件2
将文件1内容追加到文件2的末尾
四种常见的语法
一、将列表内容写入到文件1中(覆盖写)
ls -l > 文件1
二、将文件1中的内容追加到文件2中
cat 文件1 >> 文件2
head -n 10 文件1 >> 文件2
tail -n 10 文件1 >> 文件2
more 文件1 >> 文件2
四、将内容写入到文件2中(覆盖写)
echo "hello,word" > 文件2
5、链接
Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
5.1、ln(软链接)
基本语法:ln [可选项] 绝对路径+文件名 目标文件
基本功能:为某一个文件在另外一个位置建立一个同步的链接,非常类似于windows中的快捷方式。
- -b 删除,覆盖以前建立的链接
- -d 允许超级用户制作目录的硬链接
- -f 强制执行
- -i 交互模式,文件存在则提示用户是否覆盖
- -n 把符号链接视为一般目录
- -s 软链接(符号链接)
- -v 显示详细的处理过程
使用ln的时候,建议使用绝对路径,不然容易出现”符号连接的层数过多“bug。