假设我想重命名同一目录中的 3 个文件。示例:test1.gzip test2.gzip test3.gzip
现在想将上述所有文件重命名为,
测试1_20180518.gzip 测试2_20180518.gzip 测试3_20180518.gzip
现在怎样才能得到结果呢?有人请帮忙!!
请告诉我,如何在 bash 脚本中做到这一点?
答案1
检查您的“重命名”版本rename -V
。如果你看到:
“
util-linux
“ 然后rename .gzip _$(date "+%Y%m%d").gzip *.gzip
“
File::Rename
“ 然后rename 'chomp(my $date = `date "+%Y%m%d"`); s/\.gzip/_$date.gzip/' *.gzip
答案2
可能的解决方案(您需要在循环体中选择一个):
#!/bin/bash
pattern="pattern"
i=0
for file in `find <your_path> -type f -name '*.zip'`
do
extension="${file##*.}"
filename="${file%.*}"
# without extenstion
mv "$file" "$filename-$pattern.$extension"
# whole filename
mv "$file" "$pattern-$i"
i=$((i + 1))
done