linux复制指定⽬录下的全部⽂件到另⼀个⽬录中,linuxcp⽂件夹
linux复制指定⽬录下的全部⽂件到另⼀个⽬录中
复制指定⽬录下的全部⽂件到另⼀个⽬录中
⽂件及⽬录的复制是经常要⽤到的。linux下进⾏复制的命令为cp。
假设复制源⽬录为 dir1 ,⽬标⽬录为dir2。怎样才能将dir1下所有⽂件复制到dir2下了
如果dir2⽬录不存在,则可以直接使⽤
cp -r dir1 dir2
例:cp -r /data01/sinopec/pos/. /data01/sinopec/pos-pc/
即可。
如果dir2⽬录已存在,则需要使⽤
cp -r dir1/. dir2
如果这时使⽤cp -r dir1 dir2,则也会将dir1⽬录复制到dir2中,明显不符合要求。
ps:dir1、dir2改成对应的⽬录路径即可。
cp -r /home/www/xxx/statics/. /home/www/statics
如果存在⽂件需要先删除
rm -rf /home/www/statics/*
否则会⼀个个⽂件提⽰你确认,使⽤cp -rf 也⼀样提⽰
--------------------------------------
linux下cp整个⽂件夹的⽂件到另⼀个⽂件夹linux查看当前文件夹内容
cp -ri A/B/* A1/B1/ 回车
若复制过程中询问是否覆盖,输⼊y按回车,若不想看到提⽰直接覆盖使⽤-rf
另外若A A1不在同⼀⽬录下,最好填绝对路径,就是/xxx/xxx/A/B/* /xxx/A1/B1/
实例:
cp -ri /home/server/tomcat/* /home/server/test/
cp: target `/home/server/test/' is not a directory
需要先创建⽬标⽂件夹
mkdir /home/server/test
--------------------------------------
copy命令的功能是将给出的⽂件或⽬录拷贝到另⼀⽂件或⽬录中,同MSDOS下的copy命令⼀样,功能⼗分强⼤。
语法: cp [选项] 源⽂件或⽬录⽬标⽂件或⽬录
说明:该命令把指定的源⽂件复制到⽬标⽂件或把多个源⽂件复制到⽬标⽬录中。
该命令的各选项含义如下:
-
a 该选项通常在拷贝⽬录时使⽤。它保留链接、⽂件属性,并递归地拷贝⽬录,其作⽤等于dpR选项的组合。
- d 拷贝时保留链接。
- f 删除已经存在的⽬标⽂件⽽不提⽰。
- i 和f选项相反,在覆盖⽬标⽂件之前将给出提⽰要求⽤户确认。回答y时⽬标⽂件将被覆盖,是交互式拷贝。
- p 此时cp除复制源⽂件的内容外,还将把其修改时间和访问权限也复制到新⽂件中。
- r 若给出的源⽂件是⼀⽬录⽂件,此时cp将递归复制该⽬录下所有的⼦⽬录和⽂件。此时⽬标⽂件必须为⼀个⽬录名。
- l 不作拷贝,只是链接⽂件。
需要说明的是,为防⽌⽤户在不经意的情况下⽤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:dir1、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
Step3 解包到⽬录test3
tar -C test3
适⽤场景:较为普遍,例如可以复制某个Web项⽬的所有html/jsp/php⽂件;或复制其他项⽬中特定类型的源⽂件

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。