linux复制指定目录下的所有文件到另外一个目录中
复制指定目录下的所有文件到另外一个目录中
文件及目录的复制是常常要用到的。linux下进行复制的命令为cp。
假设复制源目录 为 dir1 ,目标目录为dir2。怎样才能将dir1下全部文件复制到dir2下了
若是dir2目录不存在,则能够直接使用
cp -r dir1 dir2php
例:cp -r /data01/sinopec/pos/. /data01/sinopec/pos-pc/
便可。
若是dir2目录已存在,则须要使用
cp -r dir1/. dir2
若是这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求。
ps:dir一、dir2改为对应的目录路径便可。html
cp -r /home/www/xxx/statics/. /home/www/statics
若是存在文件须要先删除
rm -rf /home/www/statics/*
不然会一个个文件提示你确认,使用cp -rf 也同样提示linux
--------------------------------------tomcat
linux下cp整个文件夹的文件到另外一个文件夹
cp -ri A/B/* A1/B1/ 回车
若复制过程当中询问是否覆盖,输入y按回车,若不想看到提示直接覆盖使用-rf
另外若A A1不在同一目录下,最好填绝对路径,就是/xxx/xxx/A/B/* /xxx/A1/B1/jsp
实例:svn
cp -ri /home/server/tomcat/* /home/server/test/测试
cp: target `/home/server/test/' is not a directory
须要先建立目标文件夹
mkdir /home/server/testserver
--------------------------------------
copy命令的功能是将给出的文件或目录拷贝到另外一文件或目录中,同MSDOS下的copy命令同样,功能十分强大。
语法: cp [选项] 源文件或目录 目标文件或目录
说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。
该命令的各选项含义以下:
- a 该选项一般在拷贝目录时使用。它保留连接、文件属性,并递归地拷贝目录,其做用等于dpR选项的组合。
- d 拷贝时保留连接。
- f 删除已经存在的目标文件而不提示。
- i 和f选项相反,在覆盖目标文件以前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下全部的子目录和文件。此时目标文件必须为一个目录名。
- l 不做拷贝,只是连接文件。htm
须要说明的是,为防止用户在不经意的状况下用cp命令破坏另外一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,所以,建议用户在使用cp命令拷贝文件时,最好使用i选项。
例1
复制指定目录下的所有文件到另外一个目录中
文件及目录的复制是常常要用到的。linux下进行复制的命令为cp。
假设复制源目录 为 dir1 ,目标目录为dir2。怎样才能将dir1下全部文件复制到dir2下了
若是dir2目录不存在,则能够直接使用
cp -r dir1 dir2
便可。
若是dir2目录已存在,则须要使用
cp -r dir1/. dir2
若是这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求。
ps:dir一、dir2改为对应的目录路径便可。
例2
复制指定文件到指定文件夹
首先创建一个用于测试的目录,用'tree'命令查看
可见,目录中主要包含用于测试的*.txt文件和用于充当炮灰的*。tes文件
目标是保持当前的目录结构,只把txt文件复制出来
方法一:当不须要的文件类型较为单一时,能够经过彻底复制而后删除指定类型的文件完成
Step1 使用命令 cp -r test/ test2 将测试目录test下全部内容彻底复制到test2
Step2 组合使用find及xargs,将*.tes文件删除
xargs是给命令传递参数的一个过滤器,能够将前一个命令产生的输出做为后一个命令的参数
命令find test2/ -name '*.tes' |xargs rm -rf, 即将find产生的输出(test2目录下的全部tes文件),做为rm的参数,从而彻底删除
适用场景举例:把项目文件备份,要去除其中的.svn文件,能够采用这种方式
方法二:须要的文件为单一类型,带目录结构复制
这种状况下可使用tar命令将指定类型的文件打包,而后解包,一样须要组合使用find和xargs
Step1 创建目录test3
mkdir test3
Step2 将指定类型文件带目录结构打包
find test/ -name '*.txt' |xargs tar czf test3.tgz
Step3 解包到目录test3
tar zxvf test3.tgz -C test3递归
适用场景:较为广泛,例如能够复制某个Web项目的全部html/jsp/php文件;或复制其余项目中特定类型的源文件