問題
指定したディレクトリ以下のすべてのファイルを特定の拡張子(.txtなど)にリネームするシェルスクリプトを作成してください。
※シェルスクリプトの実行に関してはシェルスクリプトを実行してみるを御覧ください。
※directoryディレクトリを作成して、そのディレクトリに移動して、touchコマンドで様々な拡張子のファイルを作成してから実行しましょう。
解答
#!/bin/bash target_dir=$(pwd)/directory new_ext=".txt" for file in "$target_dir"/*; do if [ -f "$file" ]; then ext="${file##*.}" new_file="${file%.*}$new_ext" mv "$file" "$new_file" echo "Renamed: $file -> $new_file" fi done
解説
※if文の中の解説のみになります。
ext="${file##*.}":
new_file="${file%.*}$new_ext":
mv "$file" "$new_file":
echo "Renamed: $file -> $new_file":