有以下文件。
test.tar.gz.part00
test.tar.gz.part01
test.tar.gz.part02
…
test.tar.gz.part99
需要替换.gz
为…,最好不要使用Debian 不附带的.lz4
依赖项(例如)。rename
谢谢您的帮助!
答案1
你可以用rename
它。
rename gz lz4 ./*part*
没有rename
:
for file in ./*part*; do mv "$file" "${file//gz/lz4}"; done
答案2
rename
最初是perl
80 年代非常短的示例脚本。
它非常短,您可以轻松地将其内联到任何脚本中:
perl -e 'for (@ARGV) {
$old = $_; rename $old, $_ if s/\.gz(\.part\d+)\Z/\.lz4$1/s
}' -- *.gz.part*
此外perl
,bash
是另一种语言解释器,通常默认在基于 Debian GNU/Linux 的系统上提供(因为这是 GNU shell)。在该 shell 中,您可以执行以下操作:
shopt -s extglob nullglob
for file in *.gz.part+([0123456789]); do
mv -T -- "$file" "${file%.*.*}.lz4.${file##*.}"
done
作为等价物。