다음과 같은 파일이 있습니다.
test.tar.gz.part00
test.tar.gz.part01
test.tar.gz.part02
…
test.tar.gz.part99
대체되어야 합니다 ..., .gz
데비안이 제공하지 않는 .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 쉘이기 때문입니다). 이 셸에서는 다음을 수행할 수 있습니다.
shopt -s extglob nullglob
for file in *.gz.part+([0123456789]); do
mv -T -- "$file" "${file%.*.*}.lz4.${file##*.}"
done
동등한 것으로.