zoukankan      html  css  js  c++  java
  • 【转】Linux下同时复制多个文件

    一、命令方法

    1.使用cp命令

    cp /home/usr/dir/{file1,file2,file3,file4} /home/usr/destination/

    需要注意的是这几个文件之间不要有空格

    2.具有共同前缀

    cp /home/usr/dir/file{1..4} ./

    复制的文件是file1, file2, file3, file4

    二、脚本方法

    使用python脚本 shutil库

    import os,sys,shutil
    ### copies a list of files from source. handles duplicates.
    def rename(file_name, dst, num=1):
        #splits file name to add number distinction
        (file_prefix, exstension) = os.path.splitext(file_name)
        renamed = "%s(%d)%s" % (file_prefix,num,exstension)
    
        #checks if renamed file exists. Renames file if it does exist.
        if os.path.exists(dst + renamed):
            return rename(file_name, dst, num + 1)
        else:
            return renamed
    
    def copy_files(src,dst,file_list):
        for files in file_list:
            src_file_path = src + files
            dst_file_path = dst + files
            if os.path.exists(dst_file_path):
                new_file_name =  rename(files, dst)
                dst_file_path = dst + new_file_name
    
            print "Copying: " + dst_file_path
            try:
                # 复制操作主要就是这句
                shutil.copyfile(src_file_path,dst_file_path)
            except IOError:
                print src_file_path + " does not exist"
                raw_input("Please, press enter to continue.")
    
    def read_file(file_name):
        f = open(file_name)
        #reads each line of file (f), strips out extra whitespace and 
        #returns list with each line of the file being an element of the list
        content = [x.strip() for x in f.readlines()]
        f.close()
        return content
    
    src = sys.argv[1]
    dst = sys.argv[2]
    file_with_list = sys.argv[3]
    
    copy_files(src,dst,read_file(file_with_list))

    2. 将以上代码保存为move.py

    3. 运行 $ python move.py /path/to/src/ /path/to/dst/ file.txt
    4. file.txt 中定义要复制的文件名字,只要给出名字即可,不需要路径

    转自:https://www.cnblogs.com/zhonghuasong/p/7352758.html

  • 相关阅读:
    多线程中,上锁的理解
    sql server 2008 联机丛书
    序列化是线程安全的么
    对象化下的编程——字段
    Dic实现工厂模式
    design principle:java 回调与委派/委托机制(转)
    风筝数据结构学习笔记(2)后序遍历二叉树(非递归)
    风筝数据结构学习笔记(1)利用链式存储结构和递归构建二叉树
    吕震宇老师《设计模式系列》
    吕震宇老师《设计模式随笔系列》
  • 原文地址:https://www.cnblogs.com/bymo/p/9117064.html
Copyright © 2011-2022 走看看