zoukankan      html  css  js  c++  java
  • Linux文件拷贝(6)

    本篇介绍文件拷贝操作,主要讲两个命令:

    命令对应英文作用
    tree[目录名] tree 以树状图列出文件目录结构
    cp 源文件 目标文件 copy 复制文件或者目录

    tree

    tree命令可以将一个目录结构以树状图的形式展示出来,便于我们了解目录层级关系。在进行文件操作前,这个命令有时很有用。

    在这之前,需要注意的是,你的Linux环境可能没有这个命令,比如我的centos服务器环境就没有,这时你可以自己安装这个命令,输入以下命令:

    yum install tree

    直接输入tree命令可以查看当前所在目录的层级关系:

    //在a目录下输入
    tree
    
    
    //结果
    .
    └── b
        └── c
            └── 123.txt

    也可以指定目录名,比如回到a目录上层,再输入命令:

    tree a
    
    //结果
    a
    └── b
        └── c
            └── 123.txt

    注意两次展示结果的区别,一个是从 . 开始,表当前目录,一个是从 a 开始,表a目录下。

    有时候一个文件夹里内容太多,如果把全部层级展示出来,结构可能太长了,这时我们只展示目录就好,需要用到选项-d,使用它就可以只展示目录。

    还是拿上面的a目录演示,我在b目录里再建一个文件:

    touch a/b/test.txt
    //这种写法是可以的

    再看一下a目录结构:

    tree a
    
    //结果
    a
    └── b
        ├── c
        │   └── 123.txt
        └── test.txt

    现在使用 -d 选项:

    tree -d a
    
    //结果
    a
    └── b
        └── c
            └── 123.txt

    此时发现,b目录里的文件没显示了,但是c目录里还显示了。关于这个,也可能是我的环境原因,有些命令包括之前已经提到的命令,在不同的Linux环境下可能表现有些许差异(我自己觉得),但功能都一样,自己多试试吧。

    cp

    拷贝命令也是很简单,它的结构是:

    cp 源文件路径 目标文件路径

    比如我的根目录下,有一个readme.txt文件,我想将它复制到home目录下,并重命名为test.txt。如果当前目录就是根目录,那么输入:

    cp readme.txt ~/test.txt
    //~表示home目录

    此时在home目录下,就有了test.txt文件。这时,如果你不想重命名,你可能这么写:

    cp readme.txt ~/readme.txt

    但其实,我们可以更简单点:

    cp readme.txt ~

    这样也是可以的。所以记住了,如果不想重命名复制的文件,直接写目标文件的路径就好。

    cp命令的几个选项

    cp命令的选项也有好几个,这里主要说三个:

    命令含义
    -f 对于已经存在的目标文件直接覆盖,不会提示
    -i 覆盖文件前提示
    -r 拷贝一个目录,目录下的所有文件及目录都拷贝

    看含义就知道什么意思了,先看 -f 选项,如果我们不加这个选项,然后复制一个文件名已经存在的文件:

    //  home目录下已经有readme.txt这个文件了,然后再复制一份根目录的readme.txt
    
    cp /readme.txt .

    结果:

    cp: overwrite ‘./readme.txt’?

    显然我们需要根据提示选择是否需要覆盖。那如果我们不需要提示的话,就可以使用 -f 这个选项了:

    cp -f /readme.txt .

    结果:

    cp: overwrite ‘./readme.txt’?

    what? 不是不会提示了吗,怎么还有提示?这个选项没效果?刚开始我也怀疑是我的环境原因,后来上网查询才了解到,默认cp命令是有别名(alias cp='cp -i')的,无法强制覆盖,即使你用 -f 参数也无法强制覆盖文件。此时如果想看到效果,可以临时取消cp的alias:

    unalias cp

    再输入上述复制命令就不会有提示了。不过显然在平时使用过程中,我们不建议使用-f选项,连cp默认都是使用了 -i 选项,这样做的好处是防止误操作啊,所有我们应该尽量加上 -i 选项,防止没必要的损失。

     

    如果我们想拷贝一个目录,那么必须加上 -r 这个选项,我在根目录下新建了一个test目录:

    tree test
    
    //结果
    test
    └── a
        ├── 123.txt
        └── b

    现在就在当前目录拷贝一份,并重命名为test1:

    cp test ./test1
    
    //结果
    cp: omitting directory ‘test’

    我们再加上 -f 选项:

    cp -r test ./test1

    这时没有提示了,没有提示就是最好的提示,可以看到当前目录下多了一个test1目录。

  • 相关阅读:
    大四寒假日期汇报1.16
    大四寒假日期汇报1.15
    大四寒假日期汇报1.14
    大四寒假日期汇报1.13
    大四寒假日期汇报1.12
    大四寒假日期汇报1.11
    python利用setup.py打包项目
    PixelLink论文解析
    深度学习模型组件 ------ 深度可分离卷积、瓶颈层Bottleneck、CSP瓶颈层BottleneckCSP、ResNet模块、SPP空间金字塔池化模块
    CUDA错误删除
  • 原文地址:https://www.cnblogs.com/wjaaron/p/8950076.html
Copyright © 2011-2022 走看看