2

複数のファイルの名前を変更...シェルで

ディレクトリに3つのファイルがあります

abc.tar.gz
abc2.tar.gz
abc3.tar.gz

このコマンドを使用して:

rename abc abc.part abc*.tar.gz

それはそれらをに変換します

abc.part.tar.gz
abc.part2.tar.gz
abc.part3.tar.gz

その後、さらに3つのファイルを追加しました..

abc.tar.gz
abc2.tar.gz
abc3.tar.gz

そして、私が起動すると、abc abc.part abc * .tar.gzの名前を変更します

6つのファイルすべての名前が変更されるため、最終出力は

abc.part.tar.gz
abc.part.part2.tar.gz
abc.part.part3.tar.gz
abc.part.part.tar.gz
abc.part2.tar.gz
abc.part3.tar.gz

複数の名前変更を防ぎたいだけです...renameコマンドはどうすればよいですか?

名前の変更コマンドをどれだけ起動しても、最終出力は以下になるはずです。ここで、ファイルの数はDYNAMIC..3、4...またはその他の可能性があります...したがって、静的に3またはいくつかの数を追加することはできません!!

abc.part.tar.gz
abc.part2.tar.gz
abc.part3.tar.gz
4

2 に答える 2

1

名前を変更する最後の引数として、次を使用します。

abc{,2,3}.tar.gz
于 2013-05-08T13:43:22.280 に答える
0

次の「ChangeExt」スクリプトを作成します。

#!/bin/bash
if [ $# -lt 2 ]; then 
   echo "$0 NEWEXT FILENAME.." 
   exit 1
fi

$newext=$1
shift

for a in $* 
do
  mv $a "`basename $a`.$newext"
  echo "$a to `basename $a`.$newext"
done
于 2013-05-08T13:55:36.407 に答える