linux cp 目录

linux复制指定目录下的全部文件到另一个目录中
复制指定目录下的全部文件到另一个目录中
文件及目录的复制是经常要用到的。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改成对应的目录路径即可。

cp -r /home/www/xxx/statics/. /home/www/statics
如果存在文件需要先删除
rm -rf /home/www/statics/*
否则会一个个文件提示你确认,使用cp -rf 也一样提示

--------------------------------------

linux下cp整个文件夹的文件到另一个文件夹
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 czf test3.tgz

Step3 解包到目录test3
tar zxvf test3.tgz -C test3

适用场景:较为普遍,例如可以复制某个Web项目的所有html/jsp/php文件;或复制其他项目中特定类型的源文件

时间: 2024-08-28 08:53:30

linux cp 目录的相关文章

linux获取目录下文件

查看当前目录下的文件:find . -type f查看当前目录下的文件夹: find . -type d如果文件file1不为空: if [ -s file1 ];then       echo "file1 不为空"fi #!/bin/sh for f in `find ./testdir -type f`; do         if [ -s $f ];then                 echo $f is not empty.                 echo 

在共享文件夹中解压到linux其他目录中,千万注意软连接的问题

这几天一直在练习驱动,搭建一个简单的交叉编译环境,交叉编译工具链和开发板的源码都导进去linux的目录中,并且解压,但是执行一个简单的交叉编译命令总会出现一个奇怪的错误提示: as:unrecongnized option 'mcpu=XXX'; 百思不得其解,后来经过一个实验室的师兄的提示,终于明白了.这里有一个背景需要交代一下: 我是在windows下面的unbuntu虚拟机中进行的驱动开发练习. 首先,我建立了一个共享文件夹,将交叉编译链的压缩文件拷贝进去,这里我的压缩文件的名字为XXX.

linux管理目录文件命令总结

一.文件和目录管理常用命令 目录操作命令:pwd.cd.ls.mkdir.du. 文件操作命令: touch.file.cp.rm.mv.which.find.ln 文件内容操作命令: cat.more.less.head.tail.wc.grep 归档及压缩命令: gzip.bzip2.tar 因为在linux系统中目录属于一种特殊文件,所以许多对文件进行操作的命令对目录也同样适用. 二.命令具体用法 1.pwd命令 用途:查看工作目录 使用方法:直接在命令行下输入pwd .pwd命令一般单独

Linux下目录的合并以及文件的覆盖

有两个目录test和new,test目录下有目录和文件,new目录下有更改过的一些test下的目录和文件,以及一些新增的文件,现在对两个目录进行合并以及覆盖test下的旧文件. cp -frap new/* test/ 命令其实非常简单,解释下: -f 强制覆盖,不询问yes/no(-i的默认的,即默认为交互模式,询问是否覆盖)-r 递归复制,包含目录-a 做一个备份,这里可以不用这个参数,我们可以先备份整个test目录-p 保持新文件的属性不变 记住一点就是,实现合并和覆盖是用cp,而不是mv

Linux 相关目录介绍

学习Linux,首先了解Linux标准目录结构很重要的,对以后的学习有很好的铺垫作用.本文不会去罗列大而全的全部目录.本文主要说明,笔者本人接触,需要了解的一些文件目录,当然本文也会不断的更新或更改.也希望有幸可以阅读到本文,并且愿意指正本人文中不当或歧义的读者,给出你们宝贵的意见或建议. Linux目录类似一个树,最顶层是其根目录. /root 启动Linux时使用的一些核心文件. /etc         [etcetera] 系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配

Linux 之目录 -鸟哥的Linux私房菜

因为利用 Linux 来开发产品或 distributions 的社群/公司与个人实在太多了, 如果每个人都用自己的想 法来配置档案放置的目录,那么将可能造成很多管理上的困扰. 你能想象,你进入一个企业之后,所 接触到的 Linux 目录配置方法竟然跟你以前学的完全不同吗? 很难想象吧~所以,后来就有所谓的 Filesystem Hierarchy Standard (FHS)标准的出炉了! 根据 FHS(http://www.pathname.com/fhs/)的官方文件指出, 他们的主要目的

Linux常用目录

/ 根目录 /bin 做为基础系统所需要的最基础的命令就是放在这里.比如 ls.cp.mkdir等命令:功能和/usr/bin类似, 这个目录中的文件都是可执行的,普通用户都可以使用的命令. /boot Linux的内核及引导系统程序所需要的文件,比如 vmlinuz initrd.img 文件都位于这个目录中. 在一般情况下,GRUB或LILO系统引导管理器也位于这个目录:启动装载文件存放位置, 如kernels,initrd,grub.一般是一个独立的分区. /dev 一些必要的设备,声卡.

[linux] cp: omitting directory `XXX'问题解决

在linux系统中复制文件夹时提示如下: Shell: cp: omitting directory `foldera/' 其中foldera是我要复制的文件夹名,出现该警告的原因是因为foldera目录下还存在目录,所以不能直接拷贝. 解决办法:使用递归拷贝,在cp命令后面加上-r参数,形如: Shell: [[email protected] opt]# cp -r foldera folderc 这里的-r代表递归的意思. 同样,当我们在linux系统下删除目录时也需要加上-r参数 ,如果

linux的目录结构

1.何为文件目录? 文件目录是指:为实现"按名存取",必须建立文件名与辅存空间中物理地址的对应关系,体现这种对应关系的数据结构称为文件目录. 2.Windows和linux的目录相同之处呢? C:\Windows------------/etc/ C:\ProgramFiles-------/usr/local C:\用户---------------/home 3.Linux的目录 看图理解 来看一下一级目录都有什么 来看一下一级目录都有什么#查看目录可以用tree命令(没有yum