Linux文件拷贝(6)

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

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

 

 

tree

tree命令能够将一个目录结构以树状图的形式展现出来,便于咱们了解目录层级关系。在进行文件操做前,这个命令有时颇有用。服务器

在这以前,须要注意的是,你的Linux环境可能没有这个命令,好比个人centos服务器环境就没有,这时你能够本身安装这个命令,输入如下命令:spa

yum install tree

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

//在a目录下输入
tree


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

也能够指定目录名,好比回到a目录上层,再输入命令:blog

tree a

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

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

有时候一个文件夹里内容太多,若是把所有层级展现出来,结构可能太长了,这时咱们只展现目录就好,须要用到选项-d,使用它就能够只展现目录。table

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

touch a/b/test.txt
//这种写法是能够的

再看一下a目录结构:test

tree a

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

如今使用 -d 选项:yum

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目录。

相关文章
相关标签/搜索