次のファイルがあるとしましょう。
essay.aux essay.out
essay.dvi essay.pdf
essay.fdb_latexmk essay.tex
essay.fls essay.toc
essay.log ......
名前を次のように変更するにはどうすればよいですか?
new_name.aux new_name.out
new_name.dvi new_name.pdf
new_name.fdb_latexmk new_name.tex
new_name.fls new_name.toc
new_name.log ......
問題は、名前が異なるのではなく拡張子が異なるため、使用できないことです。この問題。そして私はrename
命令のないmacOSを使っています。
ベストアンサー1
これが私が使用できる解決策です:
#!/bin/bash
shopt -s nullglob
my_files='/root/temp/files'
old_name='essay'
new_name='new_name'
for file in "${my_files}/${old_name}"*; do
my_extension="${file##*.}"
mv "$file" "${my_files}/${new_name}.${my_extension}"
done
shopt -s nullglob
これにより、解析されたディレクトリが空の場合、エラーは発生しません。
for file in "${my_files}/${old_name}"*; do
次に終わる限り、各file
inを繰り返します。/root/temp/files/
essay
my_extension="${file##*.}"
これは何でも貪欲に切り取る最後 .
ファイル名に見つかりました(拡張子のみを残してください)
mv "$file" "${my_files}/${new_name}.${my_extension}"
拡張子を保持しながら、古いファイルを新しいファイル名に移動します。 (名前が変更されました)