前言:
在上一节,我们复习了cd大法和创建生成文件和文件夹的方法,介绍了一些“偷懒”(高效)的小技巧,本节,我们一起来探讨下,我们对文件移动操作时有哪些可以偷懒的小技巧~
一、复制-磕CP
1、复制文件夹
1.1、定义:cp命令的作用是复制文件和目录
1.2、用法:cp [选项] 源 目标
1.3、选项 -r 递归,复制子文件和子目录,一般用于复制目录
选项 -a 复制时保留源文件的所有属性(包括权限、时间等)
案例:复制data 目录下的整个test1文件夹文件至tmp目录下
如下图所示,tmp目录下是没有test1的文件夹
执行复制命令 cp /data/test1 /tmp/ #复制data目录下的test1文件夹至tmp目录下
cp /data/test1 /tmp/ #复制data目录下的test1文件夹至tmp目录下
注意:
1.1、需要的注意的是,我们在复制的时候,源目录之间不要出现空格,不然会造成复制出错,比如将cp /data/test1 /tmp/ 写成cp /data/ test1 /tmp/ ,这时候执行的结果是会将整个data目录复制到tmp目录下。
1.2、使用-r 选项命令,创建时间会是复制完成的系统时间,使用-a选项命令,创建 时间也不会变,如果你不想更改文件夹的创建时间就可以使用-a选项来达成。
2、复制文件
如下图所示,在test1文件夹下面有两个xml文件,我们怎么实现只复制web.xml并改名为web_new.xml?
cp /data/test1/web.xml /tmp/test1/web_new.xml #复制web.xml文件至tmp/test1目录下并改名为web_new.xml
如下图所示,我们在tmp/test1下面生成了一个新的web_new.xml的文件
因此复制文件的区别是,不需要带上-r 或者 -a,这时候聪明的同学会问了,如果那个目录存在文件时,又改如何处理呢?其实此时会和我们平时复制粘贴文件一样,会提示是否覆盖,我们可以选择Y或者N来选择覆盖和不覆盖。
二、剪切移动-mv换地方
其实上面说的cp也是一种移动,这种移动更像我们常用的CV大法,复制粘贴文件或文件夹。下面我们来看看mv的移动和cp的复制移动有哪些不一样的。
1、移动文件
mv定义:移动(重命名)文件或目录。
如下图所示我们将data/test1目录下的hello.txt文件剪切至tmp/test1下,剪切后的文件创建时间是没有发生改变的。因此mv 和 cp相似的点就是都实现了文件的移动,但mv会将源文件删除了再移动,而cp不会更改源文件。因此对于小白移动文件时建议先采用cp命令,避免因测试影响了文件位置后,导致系统功能出现问题。
2、移动文件并重命名
如上图所示,我们将hello.txt 重命名为hello.doc并移回至data/test1 目录下,因此mv还可以用来重命名文件,这是cp不如mv方便的地方,cp也可以重命名文件,但是需要移动文件的位置。
当然移动文件夹也是类似的,就不在复述了,需要注意的是mv是采用剪切的方式。
最终我们在tmp目录下看到我们从data目录下移动过来的文件夹。
三、总结
本节,我们就讲了两个点,一个是复制粘贴,一个剪切粘贴,各有各的优势。cp的复制粘贴,不影响源文件,但是不能在移动完成后对文件重命名。mv会将源文件删除后,再粘贴值目标目录下,并可以在完成后重命名文件或者文件夹。
工具没有好坏之分,就看我们怎么去用它,下节我们继续重温文件和文件夹的删除操作~欢迎继续关注我的专栏,一起学习、进步~