前言:
上一节,我们讲到了怎么去移动文件,其中使用到两大类的脚本命令即cp和mv。各两种命令都可以完成移动,但是cp是复制粘贴的方式,可以选择原封不动的复制粘贴过来,即不修改文件及文件夹的创建时间等,1:1的镜像复制。也有mv命令来达到剪切复制的目的,相对于cp命令,mv命令还可以重命名文件或文件夹。
需要注意的是,我们cp移动时,对应的源路径中间不要出现空格,不然会导致复制了错误的文件过来,类似cp -a /data/ test/csdn /tmp/这样的话,就会将整个data目录复制了过去~。那接下来我们用一节的篇幅来重点讲讲删除文件和文件夹的操作。
一、删除文件
1、创建测试文件
为了误删正式文件,我们需养成好的习惯,在tmp目录下创建test文件来进行删除操作的熟悉。如下图所示我们在tmp目录,新建一个happy_new_year的文件,在这里提前祝大家新年快乐~
2、语法介绍-知其然知其所以然
如上图所示,我们用钱买学到的touch命令在test/delete文件夹下面新建了一个happy_new_year.txt文件,下面我们来进行删除操作。
在学习删除之前,我们来学习删除命令rm。rm命令是remove 的缩写,即去掉、抹去的意思。rm 删除有几种模式:
1、默认是删除提示,即删除前需确认(-i)
2、有提示删除,当然也有强制删除(-f)
3、当然也有批量删除及递归删除(-r)
二、实践案例
1、删除happy_new_year.txt
上面我们讲到了三种删除模式,下面我们来实践比较下这三种方式的区别。
默认删除
rm happy_new_year.txt #默认删除,需确认
如下图所示,我们使用rm将文件名会提示是否删除对应文件,输入N会取消,输入Y会完成删除操作~
2、批次删除文件
rm *.txt #批量删除txt结尾的文件,其他类似如批量删除doc文件,rm *.doc
如下图所示,我们使用touch命令来批量生成了3个文件,第一次,我们采用直接删除文件夹的方式,因为采用是默认模式,默认模式是只支持删除文件的,因此提示失败,第二次我们使用rm *.txt提示删除的方式完成批量文件的删除,这时会发现,当我们删除文件多的时候,一个个手工确认确实有点麻烦,因此下面我们来学习批量删除,但删除需谨慎,删除后的文件是很难再恢复的~
3、强制删除文件
rm -f happy_new_year01.txt #强制删除对应文件
如下图所示,我们批量创建了三个文件,我们采用强制删除模式删除第一个创建的文件,这时我们的删除是不会出现任何提示的。
接下来我们来看,强制批量删除
rm -f *.txt #强制批量删除对应文件
为了有更好的对比效果,我们又批量创建了三个doc的文件,再执行强制批量删除txt结尾的文件,我们发现刚创建的三个doc结尾的文件还存在。
4、删除目录
上面我们学习的都是怎么去删除文件,如果我们想删除目录,这时候我们就可以采用递归删除方式去删除对应目录及文件。
rm -r /tmp/test/delete #递归删除对应目录及目录中所有文件
rm -rf /tmp/test/delete #批量递归删除对应目录及目录中所有文件,且不提示
如下图所示我们递归删除对应delete目录及文件,有趣的是,当我们在提示删除的时候保留了其中一个文件,这样我们的文件夹和其中的一个文件就不会被删除,其实这也可以用来批量删除部分文件的场景。
同样的我们加上f命令时,我们就批量无提示完成对应目录和下面文件的删除操作~
三、总结
rm命令可以用于删除目录和文件,在模式i模式下只支持删除文件,如果我们想批量删除某一类文件,比如txt结尾的文件时,可以采用rm *.txt。当我们确定要删除的文件很多时,可以加-f命令来强制执行删除操作。
当我们删除文件夹时,这时候我们需采用-r命令,有趣的是当我们在删除时,有一个删除操作选择了N会保留对应的文件和文件夹,但确定的文件会批量被删除,因此这也是批量删除文件的变相的一个操作命令了~。
恭喜你,基本的文件创建、复制粘贴、剪切、删除命令都学会了,接下来我们一起来学习去快速查找我们需要的文件和目录及系统的一些配置、进程等等~