ウェブサイト検索

Linux ですべてのファイル名とディレクトリ名を小文字に変更する


前回の記事では、特定のディレクトリ内のファイルとサブディレクトリの数をカウントする方法を説明しました。このガイドでは、Linux ですべてのファイル名とディレクトリ名を小文字に変更する方法を説明します。

こちらもお読みください: Linux で上位のディレクトリとファイル (ディスク容量) を確認する方法

これを実現するにはいくつかの方法がありますが、最も効率的で信頼性の高い 2 つの方法について説明します。このガイドでは、次の構造を持つ Files という名前のディレクトリを使用しました。

find Files -depth

1. find、xargs、rename コマンドを併用する

rename は、Linux で複数のファイルの名前を一度に変更するためのシンプルなコマンド ライン ユーティリティです。次のように、find ユーティリティと組み合わせて使用すると、特定のディレクトリ内のすべてのファイルまたはサブディレクトリの名前を小文字に変更できます。

find Files -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

上記コマンドで使用するオプションの説明。

  • - Depth – ディレクトリ自体の前に各ディレクトリの内容をリストします。
  • -n 1xargs に対し、find 出力からのコマンド ラインごとに最大 1 つの引数を使用するように指示します。

Files ディレクトリ内のファイルとサブディレクトリの名前を小文字に変更した後のサンプル出力。

以下で説明するように、スクリプトで find コマンドと mv コマンドを使用する別の方法もあります。

2. シェルスクリプトでの find および mv コマンドの使用

まずスクリプトを作成します (任意の名前を付けることができます)。

cd ~/bin
vi rename-files.sh

次に、その中に以下のコードを追加します。

#!/bin/bash
#print usage 
if [ -z $1 ];then
        echo "Usage :$(basename $0) parent-directory"
        exit 1
fi

#process all subdirectories and files in parent directory
all="$(find $1 -depth)"



for name in ${all}; do
        #set new name in lower case for files and directories
        new_name="$(dirname "${name}")/$(basename "${name}" | tr '[A-Z]' '[a-z]')"

        #check if new name already exists
        if [ "${name}" != "${new_name}" ]; then
                [ ! -e "${new_name}" ] && mv -T "${name}" "${new_name}"; echo "${name} was renamed to ${new_name}" || echo "${name} wasn't renamed!"
        fi
done

echo
echo
#list directories and file new names in lowercase
echo "Directories and files with new names in lowercase letters"
find $(echo $1 | tr 'A-Z' 'a-z') -depth

exit 0

ファイルを保存して閉じ、スクリプトを実行可能にして実行します。

chmod +x rename-files.sh
rename-files.sh Files     #Specify Directory Name

以下の関連記事もお読みください。

  1. Linuxの「すべてはファイル」の説明とファイルの種類
  2. fswatch – Linux でのファイルとディレクトリの変更または変更を監視します
  3. Fasd – ファイルやディレクトリへの素早いアクセスを提供するコマンドライン ツール
  4. FSlint – Linux で重複ファイルを見つけて削除する方法

このガイドでは、Linux ですべてのファイルとディレクトリの名前を小文字に変更する方法を説明しました。エラーが発生した場合は、以下のフィードバック フォームからご連絡ください。同じことを行う他の方法を私たちに提供することもできます。