Linux下 rename修改后缀文件扩展名 cp复制多个文件 发表于 2022-02-25 | 分类于 Linux | 暂无评论 修改后缀文件 批量更改目录下所有文件的后缀名。 ```shell rename .txt .csv * ``` 给所有文件添加后缀名。 ```shell find . -type f -exec mv {} {}.xml ';' ``` 复制多个文件 方法一 使用cp命令 ```shell cp /home/usr/dir/{file1,file2,file3,file4} /home/usr/destination/ ``` 需要注意的是这几个文件之间不要有空格 同一个文件复制多份 ```shell echo 'a1 a2 a3' | xargs -n 1 cp a ``` a文件被复制分别产生了名字为a1,a2,a3的3个文件 具有共同前缀 ```shell cp /home/usr/dir/file{1..4} ./ ``` 复制的文件是file1, file2, file3, file4 方法二 使用python脚本 shutil库 ```shell 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 https://blog.csdn.net/qq_37858386/article/details/78404001 https://jingyan.baidu.com/article/19192ad8c581dee53e5707e6.html