linux复制文件到指定的文件夹

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-11-05 02:40:52

linux复制文件到指定的文件夹的相关文章

linux中tar 打包指定路径文件

linux中tar打包指定路径文件www.111cn.net 编辑:yahoo 来源:转载在linux系统中打包与解压文件我都可以使用tar命令来解决,只要使用不同的参数就可以实现不同的需要了,下面来给大家介绍一下tar的使用方法. 压缩: tar czvf /data/backup/test.tar.gz /data/a/b/directory解压: cd /data/test tar xzvf /data/backup/test.tar.gz 问题是,解压后的文件,在/data/test/d

读取坐标文件(指定格式文件)

在数据处理过程,比如GPS或者全站仪,从这些仪器中得到都是规定格式的坐标文件,在进行数据处理过程中,我们经常需要把这些坐标取出来进行处理,比如 坐标名,x,y01,23.4,33.202,23.4,33.203,23.4,33.204,23.4,33.205,23.4,33.206,23.4,33.207,23.4,33.2 C++或者C都可以使用scanf函数来读取,或者C++可以对getline第二个参数传值读取,但是对于C#,只有readline函数,每次只能读取一行,所以我们考虑使用sp

MFC - 释放文件到指定文件夹

1 // 释放文件到指定的文件夹 2 BOOL ReleaseRes(LPCTSTR szDLLFullPath, UINT uResID, LPCTSTR szResType) 3 { 4 if (uResID<=0 || !szResType) 5 { 6 return FALSE; 7 } 8 9 HRSRC hRsrc = FindResource(NULL, MAKEINTRESOURCE(uResID), szResType); 10 if ( NULL == hRsrc ) 11

自动压缩备份数据库文件至指定服务器

公司用的数据库服务器每天都要备份,之前都是手动压缩,再拷贝一份至另一台存储. 闲来无事就决定用个脚本可以自动备份和复制 网上有很多资料,百度一下就有了 环境介绍 数据库备份文件存放在D:\beife\下 有一台同网段的服务器作为存放压缩文件备份 2. 压缩文档 先安装Winrar软件,并确定路径,稍后需要在系统环境变量里配置 我先将存储服务器的某个网络共享文件夹映射为网盘L,然后新建txt文件,输入使用以下命令 rar a -df -agYYYY-MM-DD  L:\  D:\oracle\bf

Linux 命令 - umask: 显示或设置文件模式掩码值

umask 命令控制着创建文件时指定给文件的默认权限.它使用八进制表示法从文件模式属性中删除一个位掩码. 参见下面的例子: [[email protected] cmdline]$ rm -f foo.txt [[email protected] cmdline]$ umask 0002 [[email protected] cmdline]$ touch foo.txt [[email protected] cmdline]$ ls -l foo.txt -rw-rw-r-- 1 ucm uc

UNIX环境编程学习笔记(9)——文件I/O之文件访问权限的屏蔽和更改

lienhua342014-09-10 1 文件访问权限 在文件访问权限和进程访问控制中,我们已经讲述过文件访问权限位,为了方便,我们重新列在下面, 表 1: 文件的 9 个访问权限位  st_mode 屏蔽  意义  S_IRUSR  用户 -读  S_IWUSR  用户 -写  S_IXUSR  用户 -执行  S_IRGRP   组 -读  S_IWGRP  组 -写  S_IXGRP  组 -执行  S_IROTH  其他 -读  S_IWOTH  其他 -写  S_IXOTH  其他

linux复制指定目录下的全部文件到另一个目录中

linux复制指定目录下的全部文件到另一个目录中复制指定目录下的全部文件到另一个目录中文件及目录的复制是经常要用到的.linux下进行复制的命令为cp.假设复制源目录 为 dir1 ,目标目录为dir2.怎样才能将dir1下所有文件复制到dir2下了如果dir2目录不存在,则可以直接使用cp -r dir1 dir2即可.如果dir2目录已存在,则需要使用cp -r dir1/. dir2如果这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求.ps:di

linux复制指定目录下的全部文件到另一个目录

linux复制指定目录下的全部文件到另一个目录中复制指定目录下的全部文件到另一个目录中文件及目录的复制是经常要用到的.linux下进行复制的命令为cp.假设复制源目录 为 dir1 ,目标目录为dir2.怎样才能将dir1下所有文件复制到dir2下了如果dir2目录不存在,则可以直接使用cp -r dir1 dir2即可.如果dir2目录已存在,则需要使用cp -r dir1/. dir2如果这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求.ps:di

【Linux】【三】linux 复制文件到指定目录

将  application/file/test/logs/ 下的文件 logs.log , logs.tar 复制到  application/file/test/tools/ 下,并新建文件夹[log],内含复制文件. 指令如下: cp  -r  /root/application/file/test/logs/ * /root/application/file/test/tools/ 操作如下: 参考linux复制指定目录下的全部文件到另一个目录中,linux cp 文件夹 原文地址:ht