ファイル名にスペースを含むファイル(ディレクトリを含む)を検索して名前を変更する

ファイル名にスペースを含むファイル(ディレクトリを含む)を検索して名前を変更する

私のext4ファイルシステムには、ファイル名にスペースがあるファイルとディレクトリがたくさんあります。

安全に見つけて名前を変更するにはどうすればよいですか?私はbashを持っていて、Ubuntuを実行しています。

見つかった各ファイルの名前をインタラクティブに変更することは可能ですか?つまり、各ファイルの内容の名前を何に変更するのか尋ねます。

ファイル名を選択して名前を変更するには、どのルールを使用しますか?

ベストアンサー1

このスクリプトは、ターゲットディレクトリ内のすべてのファイルを検索し、スペースを含めないようにすべてのファイルの名前を変更する新しいスクリプトを生成します。その後、スクリプトを実行する前に自由に確認できます。

#!/bin/bash
TARGET=/path/to/files
NEWSCRIPT=${HOME}/rename-spaced-files.sh

OLDIFS="${IFS}"
IFS="\n"
for file in $(find ${TARGET}/ -type f -name "* *"); do
    if [[ -f \"${file// /}\" ]]; then
        echo "# \"${file// /}\" already exists- come up with a new name for it and uncomment the next line" >> $NEWSCRIPT
        echo -n "# " >> $NEWSCRIPT
    fi
    echo "mv \"${file}\" \"${file// /}\"" >> $NEWSCRIPT

done

おすすめ記事