linux拷贝时间命令 linux拷贝命令cp怎么用
linux cp 命令 如何复制‘修改时间为一天内的文件’到某个文件夹
将yourdir目录下修改时间一天以内的文件复制到destdir下:
创新互联是一家以网络技术公司,为中小企业提供网站维护、成都网站设计、网站建设、网站备案、服务器租用、域名注册、软件开发、微信小程序定制开发等企业互联网相关业务,是一家有着丰富的互联网运营推广经验的科技公司,有着多年的网站建站经验,致力于帮助中小企业在互联网让打出自已的品牌和口碑,让企业在互联网上打开一个面向全国乃至全球的业务窗口:建站欢迎来电:13518219792
find /yourdir -mtime -1 -type f -exec cp {} /destdir \;
linux操作系统中 拷贝目录的命令是什么?
在linux系统中复制文件我们可以使用cp或copy命令了,我们要复制文件或目录都可以使用它们两来完成哦,下面我来给大家介绍cp或copy命令与复制目录到指定目录的命令吧。 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
Linux查看拷贝一个文件用多少时间命令?
如果是想知道需要大约多长时间才能复制过去的话,就用被粘贴存储器的平均写入速度÷文件大小(单位一样)就可以算出来大约时间了
如果你是想计时的话,在Manjaro Linux之类的系统终端上因为启用了zsh的powerlevel10k主题,所以自带一个命令执行时间计时器,会在执行结束后告诉你时间,或者可以使用time命令
如果是dd这个命令的话可以在后面多加一个status=progress参数来看到目前写入进度跟预计时间
Linux文件拷贝命令?
拷贝A文件夹到B目录
cp -rv A B
如果你正在B目录下,可以这样:
cp -rv A ./
拷贝A文件下的A1文件
cp -v A/A1 ./
或者
cp -v A/A1 B/
扩展资料:
文件复制命令cp
命令格式:
cp [-adfilprsu] 源文件(source) 目标文件(destination)
cp [option] source1 source2 source3 ... directory
参数说明:
-a:是指archive的意思,也说是指复制所有的目录
-d:若源文件为连接文件(link file),则复制连接文件属性而非文件本身
-f:强制(force),若有重复或其它疑问时,不会询问用户,而强制复制
-i:若目标文件(destination)已存在,在覆盖时会先询问是否真的操作
-l:建立硬连接(hard link)的连接文件,而非复制文件本身
-p:与文件的属性一起复制,而非使用默认属性
-r:递归复制,用于目录的复制操作
-s:复制成符号连接文件(symbolic link),即“快捷方式”文件
-u:若目标文件比源文件旧,更新目标文件
如将/test1目录下的file1复制到/test3目录,并将文件名改为file2,可输入以下命令:
cp /test1/file1 /test3/file2
Linux find命令 根据修改时间查询2020 年的文件夹 然后拷贝或者移动到指定位 置?
如果你想查的是文件,就写查找*.*,要是查文件夹,就查*.
如果不是题目而是任务,那么可以考虑tc,然后按时间排一下,符合的直接移动。所见即所得,比较可靠,
用命令的话,也不能调试,弄错一点,想恢复都麻烦,
linuxcp命令并显示拷贝时间
在Linux系统里面用到 cp命令复制不能显示文件拷贝的进度,也不能计算还有多长时间文件可以 拷贝结束,现在写一个程序可以显示文件拷贝的进度。
思路:当前目录下面有一个1G大小的bigfile文件
当我在命令行下面输入ls -lh bigfile,我会得到这个文件的详细信息,当然也可以看到文件的大小。
ls -lh bigfile
-rw-rw-r-- 1 nii nii 1000M 7月 13 19:41 bigfile
我们可以用popen函数,把执行之后的结果”-rw-rw-r– 1 nii nii 1000M 7月 13 19:41 bigfil”这串字符串接收下来,我们可以提取出来表示文件大小的那段字符串,比如这个我们可以提取”1000”在用atoi函数,把字符串转换为int型数值1000(不了解popen函数和atoi函数的请自行学习),就可以获得文件大小。
例如我的文件名字叫mycp.c,我执行gcc -o mycp mycp.c生成一个mycp的可执行文件。
接下来我在命令行上输入./mycp bigfile destbigfile把当前目录下面的bigfile文件拷贝为destbigfile,这时我产生一个子进程,子进程负责调用系统的cp命令拷贝,父进程每隔一秒钟,去获取destbigfile、bigfile 文件的大小,就可以知道拷贝的进度,当然也可以获得拷贝的时间,就可以计算出来离拷贝结束还有多长时间。
下面是代码的实现:
#include
#include
#include
#include
#include
#include
#include
/** 得到文件的详细信息 */
int getFileMsg(char* pchCmd,char *pchMsg);
int main(int argc,char* argv[])
{
char szSrcFileMsg[150] = {0};
char szSrcFileSizeMsg[10] = {0};
int nSrcFileSize = 0;
char szSDestFileMsg[150] = {0};
char szDestFileSizeMsg[10] = {0};
int nDestFileSize = 0;
int pid = 0;
/** shell执行的命令 ,在创建文件的时候使用*/
char szExcueCommand[150] = {0};
float fRate = 0;
int nUsedTime = 0;
float nLastTime = 0;
/** 入参必须是三个 */
if (1 == argc)
{
printf("please input the src and des file\n");
return -1;
}
/** 产生子进程 */
pid = fork();
/** 如果是子进程,负责执行复制命令 */
if (0 == pid)
{
sprintf(szExcueCommand,"%s %s %s","cp",argv[1],argv[2]);
printf("%s\n",szExcueCommand);
system(szExcueCommand);
return 0;
}
/** 父进程负责把正在复制的原文件和复制的目标文件的大小计算出来,就可以知道复制的进度,计算频率为1秒一次 */
else
{
/** 获得原文件的大小 */
if (-1 == getFileMsg(argv[1],szSrcFileMsg))
{
printf("get sorce file message failed \n");
return -1;
}
/** 把原文件大小的信息取出来 */
strncpy(szSrcFileSizeMsg,szSrcFileMsg+21,4);
szSrcFileSizeMsg[5] = '\0';
nSrcFileSize = atoi(szSrcFileSizeMsg);
while(1)
{
sleep(1);
nUsedTime ++;
/** 获得目标文件的大小 */
if (-1 == getFileMsg(argv[2],szSDestFileMsg))
{
printf("get dest file message failed \n");
return -1;
}
/** 把原文件大小的信息取出来 */
strncpy(szDestFileSizeMsg,szSDestFileMsg+21,4);
szDestFileSizeMsg[5] = '\0';
nDestFileSize = atoi(szDestFileSizeMsg);
/*** 计算复制的进度 */
fRate = (nDestFileSize * 100) / nSrcFileSize ;
/** 计算剩下的时间 */
nLastTime = ((100 - fRate) * nUsedTime) / fRate;
/** 打印进度条 */
printf("已复制 %.2f %% 还需要 %.1f 秒\n",fRate,nLastTime);
/** 复制完成之后,退出循环 */
if (nSrcFileSize == nDestFileSize)
{
printf("复制完成,耗时 %d 秒\n",nUsedTime);
break;
}
}
}
return 0;
}
/** 得到文件的详细信息 */
int getFileMsg(char* pchCmd,char *pchMsg)
{
FILE *fstream=NULL;
char szBuff[BUFSIZ] = {0};
char szExcueCommand[150] = {"ls -lh"};
sprintf(szExcueCommand,"%s %s",szExcueCommand,pchCmd);
if (NULL==(fstream=popen(szExcueCommand,"r")))
{
perror("execute command failed: ");
return -1;
}
/** 得到命令的结果 */
if (NULL == fgets(szBuff, sizeof(szBuff), fstream))
{
pclose(fstream);
return -1;
}
pclose(fstream);
strcpy(pchMsg,szBuff);
return 0;
}
Linux下执行结果为:
./mycp bigfile destbigfile
cp bigfile destbigfile
已复制 3.00 % 还需要 32.3 秒
已复制 5.00 % 还需要 38.0 秒
已复制 8.00 % 还需要 34.5 秒
已复制 10.00 % 还需要 36.0 秒
已复制 12.00 % 还需要 36.7 秒
已复制 13.00 % 还需要 40.2 秒
已复制 14.00 % 还需要 43.0 秒
已复制 17.00 % 还需要 39.1 秒
已复制 20.00 % 还需要 36.0 秒
已复制 21.00 % 还需要 37.6 秒
已复制 24.00 % 还需要 34.8 秒
已复制 24.00 % 还需要 38.0 秒
已复制 27.00 % 还需要 35.1 秒
已复制 32.00 % 还需要 29.8 秒
已复制 33.00 % 还需要 30.5 秒
已复制 35.00 % 还需要 29.7 秒
已复制 38.00 % 还需要 27.7 秒
已复制 41.00 % 还需要 25.9 秒
已复制 42.00 % 还需要 26.2 秒
已复制 43.00 % 还需要 26.5 秒
已复制 44.00 % 还需要 26.7 秒
已复制 48.00 % 还需要 23.8 秒
已复制 50.00 % 还需要 23.0 秒
已复制 52.00 % 还需要 22.2 秒
已复制 53.00 % 还需要 22.2 秒
已复制 53.00 % 还需要 23.1 秒
已复制 57.00 % 还需要 20.4 秒
已复制 59.00 % 还需要 19.5 秒
已复制 61.00 % 还需要 18.5 秒
已复制 63.00 % 还需要 17.6 秒
已复制 63.00 % 还需要 18.2 秒
已复制 66.00 % 还需要 16.5 秒
已复制 69.00 % 还需要 14.8 秒
已复制 70.00 % 还需要 14.6 秒
已复制 72.00 % 还需要 13.6 秒
已复制 73.00 % 还需要 13.3 秒
已复制 75.00 % 还需要 12.3 秒
已复制 78.00 % 还需要 10.7 秒
已复制 79.00 % 还需要 10.4 秒
已复制 82.00 % 还需要 8.8 秒
已复制 83.00 % 还需要 8.4 秒
已复制 84.00 % 还需要 8.0 秒
已复制 87.00 % 还需要 6.4 秒
已复制 90.00 % 还需要 4.9 秒
已复制 91.00 % 还需要 4.5 秒
已复制 93.00 % 还需要 3.5 秒
已复制 93.00 % 还需要 3.5 秒
已复制 96.00 % 还需要 2.0 秒
已复制 99.00 % 还需要 0.5 秒
已复制 100.00 % 还需要 0.0 秒
复制完成,耗时 50 秒
网页名称:linux拷贝时间命令 linux拷贝命令cp怎么用
URL分享:http://scyanting.com/article/hjhsei.html