GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntuコマンドラインを使用してファイル名を小文字に変換する

Linuxを使用しているときに、小文字のファイル名でのみ機能するユーティリティやアプリに出くわす場合があります。通常、この形式でファイルを保存することはなく、フォルダ内のすべてのファイル名を再帰的に小文字に変換する回避策を探す必要がある場合があります。この記事では、コマンドラインを使用して、特定のパス内のすべてのファイルとフォルダ名を小文字に変換する2つの方法を紹介します。

この記事に記載されているコマンドと手順をUbuntu18.04LTSシステムで実行しました。

検索コマンドを使用してフォルダの内容を一覧表示する方法は次のとおりです。

$ find [directory_name] -depth

この記事のサンプルとして使用するダウンロードフォルダには、大文字で始まるすべてのファイルがあり、名前の間にいくつかのファイルも含まれています。

$ find Downloads -depth

方法1:名前変更コマンドを使用する

この方法では、Ubuntuのfind、Xargs、およびrenameコマンドを使用して、特定のディレクトリ内のすべてのファイル/フォルダーの名前を再帰的に変更します。

アプリケーションランチャー検索またはCtrl+Alt + Tショートカットを使用して、Ubuntuコマンドラインであるターミナルを開きます。

使用するコマンドの構文は次のとおりです。

$ find [directory_name] -depth | xargs -n 1 rename -v‘s /(。*)\ /([^ \ /] *)/ $ 1 \ / \ L $ 2 /’{} \;

システムにrenameコマンドがインストールされていない場合、上記のコマンドを実行するとエラーが発生する可能性があります。次のapt-getコマンドを使用してUbuntuにrenameをインストールできます:

$ sudo apt-get install rename

ダウンロードディレクトリでファイル名を小文字に変換するには、次のコマンドを使用します。

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

ディレクトリの内容を再度リストすると、次のようにすべてのファイル名が小文字に変換されていることがわかりました。

方法2:スクリプトを使用してファイルの名前を変更する

この方法では、findコマンドとmvコマンドを使用するbashスクリプトを使用して、ディレクトリ名自体を含むディレクトリのファイル名とフォルダ名を再帰的に変更します。

ターミナルアプリケーションを開き、次のようにbinフォルダに移動します。

$ cd ~bin

次に、お気に入りのテキストエディタの1つで新しいスクリプトファイルを開きます。 lowercase_filenames.sh

という名前の空のスクリプトファイルを開くために、nanoエディターを使用します。
$ sudo nano lowercase_filenames.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
exit 0

ヒント: スクリプト全体をbashファイルに入力する代わりに、ここからスクリプトをコピーして、Ctrl + Shift + Vを使用するか、右クリックメニューの[貼り付け]オプションを使用して、ターミナルに貼り付けることができます。

ファイルは次のようになります。

ここで、Ctrl + Xショートカットを使用してファイルを終了し、「変更されたバッファを保存しますか?」にファイルを保存します。 Yと入力し、Enterキーを押してプロンプトを表示します。

このファイルを実行可能スクリプトにするには、ターミナルで次のコマンドを実行します。

$ sudo chmod +x lowercase_filenames.sh

これで、任意のフォルダでスクリプトを使用する準備が整いました。

ダウンロードフォルダでスクリプトを実行すると、すべてのファイルとサブフォルダの名前が次のように小文字に変換されているのがわかります。

したがって、これらは、ファイル名の名前をすべて小文字に変更して、使用しているアプリケーションが大文字のファイル名を認識できないようにする2つの方法でした。


Ubuntu
  1. Ubuntu20.04システムのコマンドラインを使用してUbuntuにファイルをダウンロードする

  2. コマンドラインからExcelファイルをCalcファイルに変換する方法は?

  3. Ubuntu の SSH コマンドラインの代替

  1. UbuntuのコマンドラインからPDFファイルを簡単に開く方法

  2. コマンドラインを使用してUbuntuにファイルをダウンロードする方法

  3. Ubuntu 16.04で失敗したバックアップの復元?

  1. Ubuntuのコマンドラインを使用してPNGをJPEGに、JPEGをPNGに変換する

  2. Ubuntuコマンドラインを介して1つのファイルを複数の場所に同時にコピーする

  3. Ubuntuコマンドラインを使用してインターネット速度をテストする