01 命令简介
之前我们已经讲了文件和目录的创建及复制,今天我们来讲一讲剪切和删除。
mv——移动、重命名文件
![64e34bdbca4727d66791f19dbdefd302.png](https://i-blog.csdnimg.cn/blog_migrate/1a8321466a59da1d5fdb1c3279e1563f.jpeg)
rm——删除文件
![2dd5c703f74b203ac2f8cf8bd28545e3.png](https://i-blog.csdnimg.cn/blog_migrate/ab44a2a8dc493c0b21cb2e71a0e3ea59.jpeg)
02 命令详解
语法
mv [选项] 参数1 参数2rm [选项] 参数
mv,move的缩写,移动;rm,remove的缩写,删除。这样介绍,相信校友们更容易理解和记忆命令的用途。
参数
mv [选项] 源文件 目标文件
在语法上,mv命令和cp命令其实很相似。选项和参数都差不多,也有三种模式。
不同的是,cp命令是在另一个地方复制一份文件,整个计算机就有了两份内容一样的文件;而mv命令是将文件移动到另一个地方,整个计算机还是只有一份这样的文件。
![1325ac21e9875ba98712978e6e62888f.png](https://i-blog.csdnimg.cn/blog_migrate/fb876bcd85f8d16dad327ae1f57bf6aa.jpeg)
注意,对文件执行mv命令,不会更新文件的时间属性。
![ad2273bfa3df472d907b4a1e6ae10765.png](https://i-blog.csdnimg.cn/blog_migrate/5e34c1a9c0513da18b28ecdc376ad66f.jpeg)
但是执行cp命令,默认情况下会更新文件的时间属性。
![8a1355ee1d64d3f80b85181082689505.png](https://i-blog.csdnimg.cn/blog_migrate/35958fe729dbb5a21ddc1e8c46939748.jpeg)
除了名字不一样,内容、时间属性都一样,因此mv命令也用来对文件重命名。
rm命令的参数可以是文件,可以是目录,也可以同时包含文件和目录,参数之间用空格隔开即可。
![2778e4673233cf705d5dd3d7cfa16b79.png](https://i-blog.csdnimg.cn/blog_migrate/23b55a8c4fada1f6bf7e52016155ed23.jpeg)
选项
mv命令的选项和cp命令的选项差不多,“-i”交互、“-n”不覆盖、“-f”强制、“-u”更新,这里不再赘述。我们讲一个“-b”备份选项,cp命令也有这个选项。
首先我们新建一个空文件。
![e579e5675c83da41c0165542d84f7319.png](https://i-blog.csdnimg.cn/blog_migrate/73c215aa49443769b4bfb31e22f07fa8.jpeg)
然后将1.txt移动到同目录下的2.txt,由于2.txt已经存在,所以默认会覆盖2.txt原来的内容。这个时候我们添加“-b”选项,系统会在覆盖之前,生成2.txt的备份文件。
![d2edcb7019b29daf8dd9aaa4d1d7c364.png](https://i-blog.csdnimg.cn/blog_migrate/36b44a21f2d49a39b02a784eaafe87e0.jpeg)
可以看到,目录下多了个2.txt~的文件,这就是原来2.txt文件的备份,所以用cat命令查看是没有内容的。
另外,再介绍一个“-t”选项,用于指定移动的目标目录,然后将目标目录后的所有文件移动到目标目录中。
![bbf552070d373e4352b8ba0c537250be.png](https://i-blog.csdnimg.cn/blog_migrate/8a1a60a30db48415675ea821b3c34fcf.jpeg)
指定目标目录为test目录,然后将test目录后跟随的1,2,3全部移动到其中。
![e9e76b680b00ed798a2841892788563b.png](https://i-blog.csdnimg.cn/blog_migrate/5adde66f7d9899b0c194841b43604ef9.jpeg)
当然也可以不使用“-t”选项,使用默认语法就可以完成以上工作。但是使用“-t”选项指定目标目录,在一定程度上能够方便大家快速理解命令的含义,这个在具体工作中,各位校友可以根据自己习惯来使用。
mv命令大家平时可能听的少,但rm命令我相信大家听过肯定不止一两次。什么输错命令宕机,什么从删库到跑路,基本和rm命令有关。
眼尖的校友可能注意到,我在讲参数的时候,用rm命令删除的是文件,而不是目录,因为rm命令默认情况下是不删除目录的。
![8b904101ff71090b51bc4e371cd54899.png](https://i-blog.csdnimg.cn/blog_migrate/fd69b15c3064de22a9a1cda1d1b78184.jpeg)
可以看到,系统明确提示无法删除,因为test是一个目录。如果想要删除目录,就必需添加“-r”选项。
![df72fdf144858f34d34de581d14b8c4b.png](https://i-blog.csdnimg.cn/blog_migrate/ac7cb1836e3a3357edb0d5c3c7cd95a3.jpeg)
但是mv命令对目录进行操作,不需要“-r”选项。
![bf3a77f9fb2e34e4af478fef9235ec2c.png](https://i-blog.csdnimg.cn/blog_migrate/2a4721e0085c4b54338990b38fca2478.jpeg)
不添加“-r”选项,mv命令依然将test目录移动到了Desktop目录。
Linux有大量的命令,不同命令,选项各不相同。大家刚接触可能会存在记混或容易遗忘的情况,这很正常,多敲几遍就会越来越熟练的。
“-r”选项是rm命令使用很频繁的选项,另外一个使用很频繁的选项是“-f”选项。
![8a17b8ef072e9062908755933418b2fc.png](https://i-blog.csdnimg.cn/blog_migrate/04c31b56325b0f259ec07a6c7890117b.jpeg)
可以看到,在使用了“-f”选项后,系统没有任何提示直接将指定的文件和目录都删除了,这也是“rm -rf”命令经常出事的原因。
最后要提醒的是,执行rm命令默认是不提示的,我这里提示是因为我设置了执行rm命令会附带“-i”选项。
![1ee25de428feafe993aac4a3474a7bc5.png](https://i-blog.csdnimg.cn/blog_migrate/ff9c305b46575b981043c0e6540fde5e.jpeg)
这种叫做别名,执行rm命令其实是在执行“rm -i”。所以有的校友在执行rm命令时,系统没有提示就直接把文件给删除了,遇到这种情况不必惊慌,设置一下就好了。另外出于安全考虑,也建议设置提示。
03 知识总结
语法: mv [选项] 参数1 参数2 rm [选项] 参数 用途: mv——移动、重命名文件 rm——删除文件 选项:mv:-i——交互 -n——不覆盖 -u——更新 -f——强制 -b——备份 -t——指定目标目录 rm:-r、-R——删除目录 -f——强制 -d——删除空目录其他:alias——别名
实在是对不住各位校友,最近工作上事情比较多,加班没停过,短短几百字写了一个多月。今天安全形势比以往都严峻,可能没办法做到像去年一样,一周一篇或两周一篇,但我会努力抽时间码字,尽可能的缩短文章发布周期。
安全小白团,旨在帮助大家了解信息安全。文章内容偏向基础知识,希望能帮助更多的安全爱好者打开信息安全的大门。书山有路勤为径,学海无涯苦作舟。安全小白团,永远与你同在。