ディレクトリ内のファイル名をファイルに含まれる新しい名前に変更するにはどうすればよいですか?

ディレクトリ内のファイル名をファイルに含まれる新しい名前に変更するにはどうすればよいですか?

変更する必要があるファイル名がいっぱいのディレクトリがあります。単にサフィックスやプレフィックスを変更するのではなく、ファイルの名前を完全に変更する必要があります。

新しいファイル名は、new_names というファイルに格納されています。

new_names に含まれる名前を読み取り、ディレクトリ内のファイルの名前を変更するには、どのコマンドを使用できますか?

答え1

これを使用してコマンドのリストを生成できますmv:

paste /path/to/new_names <(ls /path/to/files | grep -v new_names) | awk '$2 !~ /^$/ {print "mv " $2,$1}'

問題がなければ、次のように実行できます。

cd /path/to/files
$( paste /path/to/new_names <(ls /path/to/files | grep -v new_names) | awk '$2 !~ /^$/ {print "mv " $2,$1}' )

関連情報