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

  • 相关阅读:
    PointToPointNetDevice doesn't support TapBridgeHelper
    NS3系列—10———NS3 NodeContainer
    NS3系列—9———NS3 IP首部校验和
    NS3系列—8———NS3编译运行
    【习题 7-6 UVA
    【Good Bye 2017 C】 New Year and Curling
    【Good Bye 2017 B】 New Year and Buggy Bot
    【Good Bye 2017 A】New Year and Counting Cards
    【Educational Codeforces Round 35 D】Inversion Counting
    【Educational Codeforces Round 35 C】Two Cakes
  • 原文地址:https://www.cnblogs.com/bymo/p/9117064.html
Copyright © 2011-2022 走看看