前言:

        在上一节,我们复习了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会将源文件删除后,再粘贴值目标目录下,并可以在完成后重命名文件或者文件夹。

        工具没有好坏之分,就看我们怎么去用它,下节我们继续重温文件和文件夹的删除操作~欢迎继续关注我的专栏,一起学习、进步~ 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐