修改后缀文件
批量更改目录下所有文件的后缀名。

1
rename .txt .csv *

给所有文件添加后缀名。

1
find . -type f -exec mv {} {}.xml ';'


复制多个文件
方法一
使用cp命令

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

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

同一个文件复制多份

1
echo 'a1 a2 a3' | xargs -n 1 cp a

a文件被复制分别产生了名字为a1,a2,a3的3个文件

具有共同前缀

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

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

方法二
使用python脚本 shutil库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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))
  1. 将以上代码保存为move.py
  2. 运行 $ python move.py /path/to/src/ /path/to/dst/ file.txt
  3. 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