精华内容
下载资源
问答
  • Linux CentOS 复制文件、替换文件 cp 复制文件、cp 覆盖文件 cp替换文件 一、Linux 复制文件语法 1、 cp [option] src dest 2、 option 可选参数如下: -a:是指archive的意思,也说是指复制所有的目录 ...

     Linux CentOS  复制文件、替换文件 cp 复制文件、cp 覆盖文件 cp替换文件

     

    一、Linux 复制文件语法

    1、 cp [option] src dest

    2、 option 可选参数如下:

    • -a:是指archive的意思,也说是指复制所有的目录

    • -d:若源文件为连接文件(link file),则复制连接文件属性而非文件本身

    • -f:强制(force),若有重复或其它疑问时,不会询问用户,而强制复制

    • -i:若目标文件(destination)已存在,在覆盖时会先询问是否真的操作

    • -l:建立硬连接(hard link)的连接文件,而非复制文件本身

    • -p:与文件的属性一起复制,而非使用默认属性

    • -r:递归复制,用于目录的复制操作

    • -s:复制成符号连接文件(symbolic link),即“快捷方式”文件

    • -u:若目标文件比源文件旧,更新目标文件

     

    二、普通文件复制

    1、cp Hello.java HelloWorld.java : 将 Hello.java 复制一份名为 HelloWorld.java的文件

    2、cp Hello.java /usr/He.java : 将 Hello.java 复制到 /usr/目录下,名称为 He.java

    3、cp -rf /usr /root :将 /usr 文件夹复制到 /root 文件夹下。 (会形成: /root/usr 文件夹)

    4、cp -rf /usr/** /root :将 /usr 文件夹下的全部文件复制到 /root文件夹下。 (会形成: /root/usr文件夹下的内容

     

    三、强制覆盖、替换文件

    1、语法: \cp src dest : 前面增加 反斜杠“\” , 表示强制覆盖文件。

    2、\cp Hello.java World.java : 将 Hello.java 文件强制替换到 World.java下。 (相当于: World.java 删除,Hello.java 文件复制过来,改名 World.java)

    3、\cp -rf /usr /root : 将 /usr 文件夹复制到 /root 文件夹下,遇到相同,会强制覆盖掉

    4、\cp -rf /usr/** /root :将 /usr 文件夹下的全部文件复制到 /root 文件夹下,遇到相同,会强制覆盖掉!

     

    展开全文
  • 文件复制其他文件夹操作 shutil.copyfile(src, dst):将名为src的文件的内容(无元数据)复制到名为dst的文件中 。 dst必须是完整的目标文件名 注意:所谓完整目标文件名包含了两层含义: dst(destination)...

    shutil - 高级文件操作

    该shutil模块对文件和文件集合提供了许多高级操作。特别是,提供了支持文件复制和删除的功能。

    文件复制到其他文件夹操作

    shutil.copyfile(src, dst):将名为src的文件的内容(无元数据)复制到名为dst的文件中 。 dst必须是完整的目标文件名
    注意:所谓完整目标文件名包含了两层含义:

    1. dst(destination)必须含有你复制过去的文件路径,创建路径时需要检查文件夹是否存在。
    2. dst中必须包含你想要创建的文件名。
      简单来说,它其实是将源数据复制到在目标文件夹的文件中!,所有如果没有文件路径时,需要你先通过os.mkdir("path")创建路径,然后在此路径下给出你想要的文件名。

    一般情况下,我们应该会遇到这种问题,我们想直接将文件复制过去(类似Ctrl+C,Ctrl+V的操作),而在python中你需要进行以下操作:

    1. 先获取源文件的文件名(包括后缀),将此名给dst,才算创建好dst。
    2. 再进行copyfile操作

    实例(部分代码)

    argetdir_path = 'W:\Solar Radiation\Data\Data_original\Temp_data\梯度塔结果\\' + upfile
    Targetfile_path = 'W:\Solar Radiation\Data\Data_original\Temp_data\梯度塔结果\\' + upfile + '\\' + data_name
    if not os.path.exists(Targetdir_path):
    	os.mkdir(Targetdir_path)
    shutil.copyfile(file, Targetfile_path)
    
    展开全文
  • ubuntu 移动硬盘复制文件可以,复制文件总是复制不成功 问题:在ubuntu16.04下,东芝1T移动硬盘,复制几十M的小文件没问题,但是复制文件(比如6G或超过6G),复制的进度条走完后,出现以下情况:(1)硬盘灯...

    问题:在ubuntu16.04下,东芝1T移动硬盘,复制几十M的小文件没问题,但是复制大文件(比如6G或超过6G),复制的进度条走完后,出现以下情况:(1)硬盘灯闪烁不停,十几分钟都不停;(2)硬盘拔出超时失败;(3)大文件并没有拷入移动硬盘。

    解决办法:
    (1)使用双接口以移动硬盘数据线,将移动硬盘的两个接口全部插在机箱后的USB口上

    原因据网上说有两个,一是前端usb口的电压不足,有一个接口是为充电准备的,二是只插一个数据口会影响速度

    (2)预估时间
    进度条走完只是缓存了,移动硬盘还在慢慢读写(灯闪),一般1G要3-4min,预估下时间,可观察灯是否依旧在闪

    其他没用参考:
    linux下通过命令行把文件拷贝到U盘上:https://blog.csdn.net/sven_007/article/details/7721103
    解决NTFS移动硬盘在Ubuntu无法挂载的问题:http://liuyang.in/2016/03/31/解决NTFS硬盘在Ubuntu无法挂载的问题/

    展开全文
  • 文件复制

    千次阅读 多人点赞 2017-05-28 12:48:35
    并通过文件系统提供的各种API,对文件进行同步和异步读写,深入了解Windows文件系统的功能和作用以及同步I/O和异步I/O的特点。 熟悉Linux文件系统提供的有关文件操作的系统调用。文件系统是使用计算机信息系统的...

    一、 实验目的

    了解在Windows中,文件系统如何管理保存在磁盘、光盘等存储介质上的信息。并通过文件系统提供的各种API,对文件进行同步和异步读写,深入了解Windows文件系统的功能和作用以及同步I/O和异步I/O的特点。

    熟悉Linux文件系统提供的有关文件操作的系统调用。文件系统是使用计算机信息系统的重要接口。通过使用文件系统的系统调用命令操作文件,以达到对文件系统实现功能的理解和掌握。

    二、 实验内容

    复制文件(需要Windows版本和Linux版本)

    完成一个目录复制命令mycp,包括目录下的文件和子目录, 运行结果如下:

    说明:

    Linux: creat,read,write等系统调用

    Windows:CreateFile(), ReadFile(), WriteFile(), CloseHandle()等函数

    三、 实验环境

    Windows Platform:

    Linux Platform:

    Gedit and Terminal

    四、 实验方法与步骤

    1、实验方法

    滤清实验思路,对于本实验无论在Windows还是Linux上首先是打开源目录,遍历源目录中的每一项,如果是文件,就在目标目录的相应位置创建文件,然后复制文件内容,如果是文件夹,在目标位置建立文件夹,然后递归进入该文件夹继续操作。这里要注意的是在建立文件夹和文件的时候,要同时把源文件的权限复制到目标文件上去。

    2、实验步骤

    2.1 Windows版本

    (1)、创建三个函数,分别为主函数(main)、单文件复制函数(CopyFile)、目录文件复制函数(mycp);

    (2)、确定调用关系,main函数调用CopyFile函数和mycp函数,mycp函数需要调用CopyFile函数进行文件的直接复制;

    (3)、函数解析

    ①、main()函数用来接受源目录和目标目录

    int main(int argc,char *argv[])

    {

           判断命令行输入参数的个数是否正确,若不正确进行相应的提示;

           若参数个数正确,则利用FindFirstFile()函数查找源文件,如果查找源文件失败进行相应的提示;利用FindFirstFile()函数查找目标文件的路径,若返回的句柄为INVALID_HANDLE_VALUE时,为目标文件创建目录;

           执行mycp操作;

           执行完时进行相应的提示,并退出。

    }

    ②、CopyFile()函数用来进行文件复制

    void CopyFile(char *fsource, char *ftarget)

    {

           定义变量;

           利用FindFirstFile()函数查找指向源文件路径的文件并将源文件的信息保存至WIN32_FIND_DATA结构体中,并返回相应的句柄;

           利用CreateFile()创建两个文件,分别为源文件和目标文件;

           利用WIN32_FIND_DATA结构体中的文件长度低32位减去文件长度的高32位,得到源文件的大小;

           从源文件中读取数据,并将数据写入新开的缓冲区中;

           将写入缓冲区中的数据写入到目标文件中;

           关闭相关的句柄。

    }

    ③、mycp()函数用于将源目录信息复制到目标目录下

    void mycp(char *fsource, char *ftarget)

    {

           定义和初始化相关变量;

           利用FindFirstFile()函数查找指向源文件路径的文件并将源文件的信息保存至WIN32_FIND_DATA结构体中,并返回相应的句柄hfind;

           if(hfind != INVALID_HANDLE_VALUE)

    {

           while (FindNextFile(hfind,&lpfindfiledata) != 0)//循环查找FindFirstFile()函数搜索后的下一个文件

           {

                  if(根据文件的属性得到是目录文件时)

    {

           初始化相关变量;

           利用CreateDirecty()函数为目标文件创建目录;

                  递归调用mycp()函数直到最底层为止;

                  将执行后的操作写入到fsource和ftarget中。

    }

    else(不是目录文件时)

    {

           初始化相关变量;

                  CopyFile();//调用文件复制函数;

                  将执行后的操作写入到fsource和ftarget中。

    }

    }

    }

    else

    {

           查找指定文件路径的文件失败,进行相应的提示;

    }

    }

    2.2 Linux版本

    (1)、创建三个函数,分别为主函数(main)、单文件复制函数(CopyFile)、目录文件复制函数(mycp);

    (2)、确定调用关系,main函数调用CopyFile函数和mycp函数,mycp函数需要调用CopyFile函数进行文件的直接复制;

    (3)、函数解析

    ①、main()函数用来接受源目录和目标目录

    int main(int argc,char *argv[])

    {

           判断命令行输入参数的个数是否正确,若不正确进行相应的提示;

           若参数正确,则打开源文件,如果打开失败进行相应的提示;

           若上述两步都正确,保存源文件的信息,并以源文件的st_mode创建新目录,修改目标目录的访问时间和修改时间;

           执行mycp操作;

           执行完时进行相应的提示,并退出。

    }

    ②、CopyFile()函数用来进行文件复制

    void CopyFile(char *fsource, char *ftarget)

    {

           以O_RDONLY的形式打开源文件,并返回文件描述符fd1,若fd1为-1表示打开失败进行相应的提示;

           将源文件的信息填入struct stat的结构体当中;

           以源文件的st_mode创建新文件,并返回文件描述符fd2,若fd2为-1表示创建文件失败进行相应的提示;

           读取源文件并返回读出的字节数,如果返回的字节数大于0,执行下面的操作:

                  进行写入操作,写入时要传送的字节数为读取源文件时返回的字节数;如果写入操作的写入字节数不等于读取时读出的字节数,说明写入失败,进行相应的提示。

           修改写入文件的时间属性;

           关闭打开的文件。

    }

    ③、mycp()函数用于将源目录文件复制到目标目录下

    void mycp(char *fsource, char *ftarget)

    {

           初始化相关变量;

           打开目录,返回指向DIR结构的指针;

           while((entry= readdir(dir)) != NULL)//读目录

    {

           首先判断目录;

           if (entry->d_type == 4)//读到的是目录

           {

           修改参数;

           stat(source,&statbuf);//统计source文件属性信息并放入statbuf中

           mkdir(target,statbuf.st_mode);//创建目标目录

           修改目标文件的访问和修改时间;

           递归调用mycp()函数直到最底层为止;

           将执行后的操作写入到fsource和ftarget中。

    }

    else//没有子目录,直接进行复制

    {

           修改参数;

           CopyFile();//调用文件复制函数;

           将执行后的操作写入到fsource和ftarget中。

    }

    }

    }

    五、 实验结果

    在Windows中的实验截图:

    图中是将桌面的一个名叫“火车上的任务”这个文件夹复制为名为1的文件夹。

     

    在Linux中的实验截图:


    图中是将文件夹DM_DATA复制为名叫1的文件夹。

    六、 实验分析与总结

    通过熟悉Windows和Linux的文件系统相关理论,可以实现该实验并取得上面的效果。在实现的过程中有些许问题已经得到解决。先总结如下:

    在Windows中:

    在Windows中除过CreateFile(), ReadFile(),WriteFile(), CloseHandle()等系统调用外还需掌握三个目录操作的函数和文件属性返回值的具体情况。

    (1)、CreateDirectory()函数用于创建目录

    DWORD CreateDirectory(LPTSTR lpszPath,//新创建目录的路径名

    LPSECURITY_ATTRIBUTES lpsa);//为目录设置的安全属性结构

    返回值:成功时返回TRUE,否则返回FALSE,且通过函数GetLastError()可获得错误码。

    (2)、FindFirstFile()查找指定文件路径的文件

    (3)、FindNextFile()查找FindFirstFile()函数搜索后的下一个文件函数

    (4)、GetFileAttributes()函数的返回值整理如下:

    橙色标记的属性为Windows系统中文件的公有属性,其中“只读”、“隐藏”、“系统”、“存档”为文件的四种基本属性。compressed,content_indexed,encrypted只存在于NTFS分区中。

    文件去掉全部属性后(四种基本属性),将自动标记为normal。同时具有system和hidden属性的文件会在系统中彻底隐形,这也是病毒常用的伎俩。commpressed和encrypted不能共存。默认情况下文件都有content_indexed属性。

    在Linux中:

    在Linux中,除过creat,read,write,open等系统调用外还需掌握两个结构体和一个函数。

    structutimbuf

    {//修改文件时间的结构体

           time_tactime;         //文件数据的最后存取时间

           time_tmodtime;        //文件数据的最后修改时间

    }

    和教材中并不完善的dirent结构体

    structdirent

    {

    long d_ino;     //inode number索引节点号

    off_t d_off;     //offset to this dirent在目录文件中的偏移

    unsigned shortd_reclen;        //length of this d_name文件名长

    unsigned chard_type;    //the type of d_name文件类型

    chard_name[NAME_MAX+1];    //filename(null-terminated)文件名,最长255字符

    }

    通过readdir函数读取到的文件名存储在结构体dirent的d_name成员中。

    d_type:4表示为目录,8表示为文件;

    d_reclen:16表示子目录或文件,24表示非子目录;

    d_name:目录或文件的名称。

    一个函数:

    utime()用于更改文件的访问和修改时间

    #include <utime.h>

    int utime( const char *pathname, conststruct utimbuf *times );

    返回值:若成功则返回0,若出错则返回-1

    七、实验源代码

    Windows版本
    //********************************************
    /*名称:mycp.c
    /*描述:完成一个目录复制命令mycp,包括目录下的文件和子目录
    /*作者:野狼
    /*日期:2017-04-22
    /********************************************/
    
    #include "stdafx.h"
    #include<stdio.h>
    #include<stdlib.h>
    #include<Windows.h>
    #include<Windowsx.h>
    #include<string.h>
    #define buf_size 4096
    
    /*
    查找指定文件路径的文件FindFirstFile()函数
    HANDLE FindFirstFile(LPCTSTR lpFileName, //file name
    LPWIN32_FIND_DATA lpFindFileData	//data buffer
    );
    返回值:如果调用成功,返回值为非0,否则返回值为0.
    */
    
    //直接文件复制
    void CopyFile(char * fsource, char * ftarget)
    {
    	WIN32_FIND_DATA lpfindfiledata;
    	//查找指定文件路径
    	HANDLE hfind = FindFirstFile(fsource,//文件名
    		&lpfindfiledata);//数据缓冲区
    	HANDLE hsource = CreateFile(fsource,//指向打开文件名的指针
    		GENERIC_READ | GENERIC_WRITE,//指定对象的访问类型(通过读和写联合访问可以实现文件的读写)
    		FILE_SHARE_READ,//与其他进程共享文件的方式
    		NULL,//指向安全属性的指针(NULL表示默认安全对象)
    		OPEN_ALWAYS,//指定如何创建文件(OPEN_ALWAYS为如果文件存在则打开文件,否则创建新的文件)
    		FILE_ATTRIBUTE_NORMAL,//指定文件的属性和标志(FILE_ATTRIBUTE_NORMAL设置为默认属性)
    		NULL);//用于复制文件句柄
    	HANDLE htarget = CreateFile(ftarget,//指向创建文件名的指针
    		GENERIC_READ | GENERIC_WRITE,//指定对象的访问类型(通过读和写联合访问可以实现文件的读写)
    		FILE_SHARE_READ,//与其他进程共享文件的方式
    		NULL,//指向安全属性的指针(NULL表示默认安全对象)
    		CREATE_ALWAYS,//指定如何创建文件(CREATE_ALWAYS为创建一个已经存在的新文件,如果存在会将现有的文件清空且重写文件)
    		FILE_ATTRIBUTE_NORMAL,//指定文件的属性和标志(FILE_ATTRIBUTE_NORMAL设置为默认属性)
    		NULL);//用于复制文件句柄
    	//源文件的大小
    	LONG size = lpfindfiledata.nFileSizeLow - lpfindfiledata.nFileSizeHigh;
    
    	DWORD wordbit;
    
    	//新开缓冲区,保存数据
    	int *BUFFER = new int[size];
    
    	//源文件读数据
    	ReadFile(hsource,//指定要读的文件句柄
    		BUFFER,//指向存放从文件读的数据的缓冲区的地址指针
    		size,//要从文件读的字节数
    		&wordbit,//存放实际从文件中读的字节数的变量地址
    		NULL);//同步方式打开设置为NULL
    	//目标文件写数据
    	WriteFile(htarget,//指定要写的文件对象的句柄
    		BUFFER,//指向要写入文件的数据缓冲区指针
    		size,//要写入文件的字节数
    		&wordbit,//实际写入的字节数
    		NULL);//同步方式打开设置为NULL
    
    	CloseHandle(hfind);
    	CloseHandle(hsource);
    	CloseHandle(htarget);
    }
    
    //将源目录信息复制到目标目录下
    void mycp(char * fsource, char * ftarget)
    {
    	WIN32_FIND_DATA lpfindfiledata;
    	char source[buf_size];
    	char target[buf_size];
    	lstrcpy(source, fsource);
    	lstrcpy(target, ftarget);
    	lstrcat(source, "\\*.*");
    	lstrcat(target, "\\");
    	HANDLE hfind = FindFirstFile(source,//文件名
    		&lpfindfiledata);//数据缓冲区
    	if (hfind != INVALID_HANDLE_VALUE)
    	{
    		while (FindNextFile(hfind, &lpfindfiledata) != 0)//循环查找FindFirstFile()函数搜索后的下一个文件
    		{
    			//查找下一个文件成功
    			if ((lpfindfiledata.dwFileAttributes) == 16)//判断是否是目录(若为目录FILE_ATTRIBUTE_DIRECTORY是16)
    			{
    				if ((strcmp(lpfindfiledata.cFileName, ".") != 0) && (strcmp(lpfindfiledata.cFileName, "..") != 0))
    				{
    					memset(source, '0', sizeof(source));
    					lstrcpy(source, fsource);
    					lstrcat(source, "\\");
    					lstrcat(source, lpfindfiledata.cFileName);//追加文件
    					lstrcat(target, lpfindfiledata.cFileName);
    					CreateDirectory(target,NULL);//为目标文件创建目录
    					mycp(source, target);//进入子目录复制
    					lstrcpy(source, fsource);
    					lstrcat(source, "\\");
    					lstrcpy(target, ftarget);
    					lstrcat(target, "\\");
    				}
    			}
    			else//无目录
    			{
    				memset(source, '0', sizeof(source));
    				lstrcpy(source, fsource);
    				lstrcat(source, "\\");
    				lstrcat(source, lpfindfiledata.cFileName);
    				lstrcat(target, lpfindfiledata.cFileName);
    				CopyFile(source, target);//直接调用文件复制函数
    				lstrcpy(source, fsource);
    				lstrcat(source, "\\");
    				lstrcpy(target, ftarget);
    				lstrcat(target, "\\");
    			}
    		}
    	}
    	else
    	{
    		printf("查找指定文件路径的文件失败!\n");
    	}
    }
    
    int main(int argc, char *argv[])
    {
    	WIN32_FIND_DATA lpfindfiledata;
    
    	if (argc != 3)
    	{
    		printf("参数错误!\n");
    	}
    	else
    	{
    		if (FindFirstFile(argv[1], &lpfindfiledata) == INVALID_HANDLE_VALUE)
    		{
    			printf("查找源文件路径失败!\n");
    		}
    		if (FindFirstFile(argv[2], &lpfindfiledata) == INVALID_HANDLE_VALUE)
    		{
    			CreateDirectory(argv[2],NULL);//为目标文件创建目录
    		}
    		mycp(argv[1], argv[2]);
    	}
    	printf("复制完成!\n");
    	return 0;
    }

    Linux版本
    /********************************************/
    /*名称:mycp.c
    /*描述:完成一个目录复制命令mycp,包括目录下的文件和子目录 
    /*作者:野狼
    /*日期:2017-04-22
    /********************************************/
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <string.h>
    #include <dirent.h>
    #include <utime.h>
    #define buf_size 4096
    
    //文件复制函数
    void CopyFile(char *fsource, char *ftarget)
    {
        //打开原文件,返回文件描述符
        int fd1 = open(fsource, O_RDONLY);
        if (fd1 == -1)
        {
            printf("打开文件失败!\n");
        }
        //fd2用于存放目标文件的文件描述符
        int fd2;
        struct stat statbuf;
        struct utimbuf timeby;
        char BUFFER[buf_size];
        int wordbit;
        //将原文件的信息放入statbuf中
        stat(fsource,&statbuf);
        //创建新文件,返回文件描述符
        fd2 = creat(ftarget,statbuf.st_mode);
        if (fd2 == -1)
        {
            printf("创建文件失败!\n");
        }
        //读取源文件字节数
        /*
        read(write)(文件的描述符,读出(写入)文件数据的字节数组,要传送的字节个数);
        返回值:读出(写入)的字节数
        */
        while((wordbit = read(fd1,BUFFER,buf_size)) > 0)
        {
            if (write(fd2,BUFFER,wordbit) != wordbit)//写入目标文件
                printf("写入失败!\n");
        }
        timeby.actime = statbuf.st_atime;//修改时间属性
        timeby.modtime = statbuf.st_mtime;
        close(fd1);
        close(fd2);
    }
    
    //将源目录文件复制到目标目录下
    void mycp(char *fsource,char *ftarget)
    {
        char source[buf_size];
        char target[buf_size];
        struct stat statbuf;
        struct utimbuf timeby;
        struct dirent *entry;
        DIR *dir;
        strcpy(source,fsource);
        strcpy(target,ftarget);
        //打开目录,返回指向DIR结构的指针
        dir = opendir(source);
        while((entry = readdir(dir)) != NULL)//读目录
        {
            if (strcmp(entry->d_name,".") == 0 || strcmp(entry->d_name,"..") == 0)
            {
                continue;
            }
            if (entry->d_type == 4)//读到的是目录
            {
                strcat(source,"/");
                strcat(source,entry->d_name);
                strcat(target,"/");
                strcat(target,entry->d_name);
                //统计source文件属性信息并放入statbuf中
                stat(source,&statbuf);
                //创建目标目录
                mkdir(target,statbuf.st_mode);
                //修改文件存取和修改时间
                timeby.actime = statbuf.st_atime;
                timeby.modtime = statbuf.st_mtime;
                //修改文件的访问时间和修改时间
    			utime(target,&timeby);
                mycp(source,target);
                strcpy(source,fsource);
                strcpy(target,ftarget);
            }
            else//没有子目录,直接复制
            {
                strcat(source,"/");
                strcat(source,entry->d_name);
                strcat(target,"/");
                strcat(target,entry->d_name);
                CopyFile(source,target);//调用文件复制函数
                strcpy(source,fsource);
                strcpy(target,ftarget);
            }
        }
    }
    
    int main(int argc,char *argv[])
    {
    	struct stat statbuf;     //stat结构
    	struct utimbuf timeby;	//文件时间结构
    	/*
    	struct utimbuf
    	{
    		time_t actime;         //文件数据的最后存取时间
    		time_t modtime;        //文件数据的最后修改时间
    	}
    	*/
    	DIR *dir;   //DIR结构的指针,指向目录的第一个文件
    	if (argc != 3)
    	{
            printf("参数错误!\n");
    	}
    	else
    	{
            /*打开目录,关闭目录*/
            if ((dir = opendir(argv[1])) == NULL)
            {
                    printf("源文件打开错误!\n");
            }
            if ((dir = opendir(argv[2])) == NULL)
            {
                stat(argv[1],&statbuf);//将源文件中的文件属性信息填入statbuf中
                mkdir(argv[2],statbuf.st_mode);//创建目录
    			
                timeby.actime = statbuf.st_atime;//文件数据的最后存取时间
                timeby.modtime = statbuf.st_mtime;//文件数据的最后修改时间
                utime(argv[2],&timeby);//用utime()函数修改目标文件的访问时间和修改时间
            }
            mycp(argv[1],argv[2]);//开始复制
    	}
    	printf("复制完成!\n");
    	return 0;
    }
    展开全文
  • Linux怎么复制文件其他文件夹

    千次阅读 2020-02-02 17:18:13
    本文主要讲解linux怎么复制文件其他文件夹。 在Linux和Unix系统上工作时,复制文件和目录是您每天要执行的最常见任务之一。 cp是一个命令行实用程序,用于复制Unix和Linux系统上的文件和目录。在本文中,我们将...
  • Python 复制文件并重命名

    万次阅读 2019-06-16 22:26:19
    目录在同一文件夹下复制并重命名复制文件到新路径下 在同一文件夹下复制并重命名 比如,想在把Test2文件夹下,所有子文件夹(诸如001、002、003)下的txt文件复制一份,并重命名为原名+_new 运行后,提示有三个...
  • 网上对于LinuxC如何复制文件,往往直接用到system("cp 源文件 目标文件"),如此“不负责任”的解决方案,要是别人规定不能用shell脚本呢,必须从C语言的根本解决问题呢? 如下图,用过Linux下的人都知道如何用终端...
  • FATFS文件系统复制文件

    千次阅读 2017-07-04 19:58:36
    原帖地址: 刚刚完成了fatfs下面的文件夹复制,貌似没有问题,Traids之前说的文件夹复制有问题,可以参考一下我这个代码 ...//文件复制 //将psrc文件,copy到pdst. //psrc,pdst:源文件和目标文件 //fwmode:文件
  • Vmware虚拟机安装完之后有的时候需要挪动、备份虚拟机文件。比如,从公司电脑复制到家里电脑;...一、直接复制文件 就是直接复制主机磁盘下对应的虚拟机文件到要备份的目录或其他机器中,下次使用的时...
  • 首先,需要用到的这个工具(下载地址放文章后面): 文本账号文件免安装便捷管理神器 现在开始说具体操作 1、首先,我准备了3个文件夹和两个可爱的图片: 当然,在实际使用的时候肯定不止这些,我这里只是演示...
  • Linux 复制文件到当前目录 如何在 Linux 系统下复制当前目录的文件到当前目录 1)查看当前路径 pwd >>/home/user 2)选择要复制的文件,以及重命名后的文件 比如,我们要复制 /home/user 目录下的 test.sh ...
  • 如何带文件路径复制文件

    千次阅读 2013-11-13 14:57:47
    复制 a/b/c/d.txt 到 ~/Documents目录下,复制之后在Documents文件夹中保留a/b/c/d.txt路径,应该使用什么命令? 可以有cp cp -r a ~/Documents/ ...但是如果a, a/b, a/b/c/ 有其他文件或目录也
  • linux文件复制命令

    千次阅读 2017-08-29 16:27:09
    2、用cp命令复制文件。 注意: cp -l start1 start4 把start1和start4建立硬链接,两个文件保持同步性,其中任何一个文件改变,另一个文件也会跟着改变。  -s, --symbolic-link 只创建符号链接而不复制文件  -S, ...
  • //将本地文件复制复制到Hadoop文件系统 //目前,其他Hadoop文件系统写入文件时均不调用progress()方法。 package com; import java.io.BufferedInputStream; import java.io.FileInputStream; import ...
  • 2.获取指定目录及子目录下所有txt文件的个数,并将这些txt文件复制到D盘下任意目录解题思路:1,循环遍历txt文件个数2,遍历一个,获取一个,复制一个3,获取txt,写一个函数4,复制文件,写一个函数/* 2.获取指定...
  • 在ubuntu中复制粘贴文件

    千次阅读 2014-04-04 10:18:31
    第二步:输入你的用户的密码第三步:在弹出的窗口中打开需要操作的目录第四步:把你所需要其他目录中的文件进行复制,并且粘贴到当前的这个目录中或者:也可以在当前目录窗口中删掉不想要的文件用sudo 后面接你要...
  • 在.xlsm文件中打开Visual Basic编辑器,在文本编辑器中输入以下VBA程序,实现复制sheet功能。 Private Sub all2here_Click() '其他sheet表复制到此Excel中 MsgBox "欢迎开始载入……" Dim wb, arr, Sh...
  • macOS中快速复制文件路径

    千次阅读 2018-10-29 21:01:16
    系统版本: macOS Mojave(10.14) 其它版本的系统的操作大同小异,基本没有变化,也可以参考 说明 很多人可能在网上看到过一些其它的方法,...本文介绍的方法可以实现像 Windows 系统中使用右键复制文件/文件夹...
  • centos 复制并重命名文件

    千次阅读 2019-09-29 01:20:14
    需要需要修改一下模板foot.htm,但是其他页面也需要调用这个文件,只是首页的变动,因此需要多创建一个文件 footer.htm,以便首页调用这个文件其他页面正常调用原来的文件,那么就需要用到centos 复制并重命名文件...
  • cmd复制文件其他目录

    千次阅读 2017-03-21 10:27:06
    ::后面加e代表将整个文件夹下的内容全部复制到目的路径下,如果不加只会复制文件,不会复制文件夹 goto END :SOURCE_ERR echo error: the source dir is not specified. :END echo install exit.
  • Cmake复制文件方法

    千次阅读 2019-10-23 22:38:21
    我们经常会遇到将第三方库文件复制到项目运行时文件夹,或者将子项目生成的库文件复制到项目运行时文件夹的情况,本文介绍FILE-COPY、add_custom_command、ADD_CUSTOM_TARGET三种方法及CMake COMMAND提供的命令说明...
  • windows-如何复制大量的文件

    千次阅读 2018-05-02 11:00:16
    有时候跳槽,公司的电脑是不能...很简洁,功能也是很强大,因为windows系统自带的复制复制文件大了话,可能就复制失败了,但是这个,你可以复制很多文件,然后就可以去做其他的事情了,这个会一直复制,很少出...
  •  首先选择需要复制的目录(当然是最顶级的目录),然后按下F5键,此时会弹出图1所示的对话框,注意请暂时不要点击“确定”按钮,先在“只选择下列类型的文件”框中输入如下内容:*.abdcefgh,其实输入其它的扩展名也...
  • 杀掉进程后 复制文件 /// /// 判断文件是否被占用 vFileName为文件的路径+文件名称 /// public string IsUnlocker(string vFileName) { if (!File.Exists(vFileName)) { return "Nofiles"; } IntPtr ...
  • c++如何将文件复制其他地方

    千次阅读 2016-08-25 09:13:48
    c++如何将文件复制其他地方  最近,我在写应用程序,要用到的是将一个目录下的文件复制其他文件里去,就发出来看看吧, // ConsoleApplication3.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h...
  • excel利用宏自动复制来自其他excel文件的数据
  • lua复制文件

    千次阅读 2014-03-11 16:21:16
    --功能:写入文件 --输入:文件名, 内容 --输出:生成的文件里面包含内容 function copyfile(source,destination) sourcefile = io.open(source,r) destinationfile = io.open(destination,w) for line in source...
  • scp命令 复制文件其他系统失败

    千次阅读 2018-08-02 10:21:03
    1.无法将文件传送至指定主机   2.这里犯了一个很傻的问题,远程连接端口没写对,应该是22端口,改了之后就没问题了 3.也有人说是防火墙会有影响,不过我的firewalld是开着的,iptables没开 4.确保sshd服务...
  • php 复制文件到指定目录

    万次阅读 2017-03-11 14:07:08
    复制一个文件到指定的目录,可自行设置文件目的目录及复制文件的文件名 //复制图片 function file2dir($sourcefile, $dir,$filename){ if( ! file_exists($sourcefile)){ return false; } //$filename = ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,096,084
精华内容 438,433
关键字:

复制这些文件需要其他