あなたはLinuxオペレーティングシステムを初めて使用しますか? その場合、ファイルやフォルダの名前を変更するなどの一般的なタスクは、あなたが慣れているものとは異なる場合があります。 しかし、心配しないでください。 Linuxでのファイル名の変更の概念は、他のオペレーティングシステムでの方法と似ています。
このチュートリアルでは、GUIと端末でのコマンドの実行の両方を介して、Linuxで単一および複数のファイルの名前を変更する多くの方法を学びます。
始めましょう!
目次
前提条件
このチュートリアルを実行するには、次のことを確認してください:
- このチュートリアルではUbuntu18.04LTSを使用しますが、他のLinuxディストリビューションは動作します。
- sudo/administratorアクセス権を持つアカウント。
ファイルマネージャでファイル名を変更
GUIでファイルを管理することに慣れている場合は、このチュートリアルを開始して、ファイルマネージャでフ あなたは普通の光景でファイルを見ることができるので、GUIファイルマネージャはきちんとしています。 Linuxで利用可能なファイルマネージャの1つは、GNOMEの以前のファイルマネージャであるNautilusです。 このチュートリアルでは、Nautilusファイルマネージャを使用してファイルの名前を変更する方法を示します。
Linuxの他のファイルマネージャは、Konqueror、Dolphin、Krusader、Thunar、Nemoファイルマネージャ、およびSunflowerファイルマネージャです。 これらのファイルマネージャは同じタスクを実行しますが、ファイルやディレクトリの名前を変更すると若干異なる場合があります。
端末を起動し、以下のコマンドを実行して、Nautilus(install nautilus
)をapt
パッケージマネージャーでインストールします。 sudo
コマンドは、sudo/管理者権限でコマンドを昇格させます。
sudo apt install nautilus
単一のファイルの名前を変更する
Nautilusで単一のファイルの名前を変更するには、Windowsファイルエクスプローラのように数回クリックするだけです。
単一のファイルの名前を変更するには、Nautilusを開き、名前を変更するファイルを右クリックして、以下に示すように[名前の変更]を選択します。
この例では、ファイルの名前を変更することに焦点を当てていますが、ファイルとディレクトリの両方の名前を変更するプロセスは同じです。
今、元のファイル名を置き換えるために新しいファイル名を入力し、Enterキーを押すか、名前の変更をクリックして、それはそれです。
Nautilusファイルマネージャ
を使用して複数のファイルの名前を変更するWindowsと同様に、Ubuntuでは複数のファイルの名前を一度に変更する方法に関するオプシ
複数のファイルの名前を変更するには、名前を変更するすべてのファイルを選択し、それらのいずれかを右クリックして名前を変更を選択します。 ポップアップウィンドウが表示され、選択したファイルの名前を変更する方法を選択できます。
以下では、選択したファイルの名前を変更する方法に応じて、2つのオプションを選択できます。
- テンプレートを使用して名前を変更する–これにより、ファイルの名前を増分で変更できます。
- テキストの検索と置換–ファイル名内の特定のテキストを検索して置換できます。
テンプレートを使用したファイルの名前変更
テンプレートを使用したファイルの名前を変更するには、テンプレートを使用した名前変更オプ
空のフィールドに置換名を入力して、テンプレートを持つファイルの名前を変更し、+追加ボタンをクリックしてテンプレートから選択します。 このチュートリアルでは、最初のもの(1,2,3,4)を選択し、名前の変更をクリックします。 このオプションは、置換ファイル名(Text1、Text2、…)の後に各ファイルに増分番号を追加します。
ファイル名がテキストに変更され、その後に数字が増加していることに注意してください。
ファイル名
内の単語の検索と置換特定のファイル名で複数のファイルの名前を変更するには、テキストの検索と置換オプションを選択します。
既存のテキストフィールドにテキストを入力し、置換フィールドに置換テキストを入力し、名前の変更をクリックしてテキストを置き換えます。 このオプションは、ファイル名内の特定のテキストを検索して置換します。
これで、各ファイル名で「Text」という単語を「File」に置き換えたことがわかります。
mvコマンドでファイルの名前を変更する
GUIでナビゲートするのではなく、コマンドを実行することがあなたのものである場合は、ターミナルでファイルの名前を変更する方法を学ぶために自分自身を準備します。 Linuxターミナルでファイルの名前を変更することは、PowerShellなどの他のコマンドライン環境で行うことと似ています。 元のファイル名をターゲットファイル名に変更するコマンドを実行すると、それだけです。
ファイルの名前を変更するには、二つのシナリオがあります。 最初は作業ディレクトリからファイルの名前を変更し、2番目はフルパスを指定することです。 ファイルの名前を変更するには、以下のmv
コマンド構文を見てください。source
は元の名前で、destination
は置換名です。
# Rename a file or directory in the working directorymv <source> <destination># Rename a file by specifying the full pathmv <~/mydir/source> <~/mydir/destination>
mvコマンドで単一のファイルの名前を変更
mvコマンドの構文はまだ新鮮ですが、単一のファイルの名前を変更してみましょう。
単一のファイルとディレクトリの名前を変更する方法を示すには、
1. ターミナルを起動し、以下の一連のコマンドを実行してディレクトリと二つのテキストファイルを作成します。
# Create a directory named 'test'mkdir test # Change directory to ~/testcd test # Create text files named 'file1.txt' and file2.txttouch file1.txt file2.txt
2. 次に、ls
コマンドを実行して、作業ディレクトリ内のファイルを一覧表示します。 以下では、そのfile1を見ることができます。txtおよびfile2。txtは~/testディレクトリに存在します。
3. 以下のmv
コマンドのいずれかを実行して、file1.txt
の名前をfile10.txt
に変更します。
# Rename a file in the working directorymv file1.txt file10.txt# Rename a file by specifying the full pathmv ~/test/file1.txt ~/test/file10.txt
ディレクトリの名前を変更することは、
mv ~/test ~/demo
のように、ファイルの名前を変更することと同じです。~
記号はホームディレクトリを示します。
4. 最後に、ls
コマンドを再実行して、作業ディレクトリ内のファイルを一覧表示します。
以下、そのfile1を見ることができます。txtはfile10と名前が変更されました。txt。
Forループで複数のファイルの名前を変更する
手元の他のタスクで忙しすぎて、すべてのファイルの名前を一度に変更したい場合は、以下のようなfor loop文を使用する必要があります。
以下のコードをそのままコピーし、端末に貼り付け、Enterキーを押します。 以下のコードは、作業ディレクトリ内の各テキストファイルをスキャンし、ファイルの名前を”File”に続けて増分する番号で変更します。
# Declares variable with value set to 1i=1 # Scans each text file in the working directoryfor file in *.txt; # Iterate the command below until all files are scanneddo # Renames each file with "File" followed by incrementing number ($i)mv -- "$file" "File$i.txt" # Increments the variables current number value by 1 i=$((i+1)) done
コードを端末に貼り付けると正常に動作しますが、代わりに実行するスクリプトファイルを作成する方が良い方法です。
以下では、コードがすべてのファイルの名前を変更する方法を実際に見ることができます。
リネームユーティリティ
を使用してLinuxでファイルの名前を変更する毎日のルーチンで単一のファイルの名前を変更する場合は、mv
コマンドで十分です。 しかし、おそらくあなたは一度に同じパターンで複数のファイルの名前を変更することを目指していますか? たとえば、特定の単語(ファイル)で始まるファイルの名前を変更します。 その場合は、代わりにrenameユーティリティをインストールします。
名前変更ユーティリティは、複数のファイルの名前を変更し、ファイル名の形式を変更し、ファイルを上書きします。
renameユーティリティをインストールするには、作業しているLinuxディストリビューションに応じて、以下のいずれかのコマンドを実行します。
# Install rename utility with the apt package manager for Ubuntu, Debian, and Linux Mintsudo apt install rename# Install rename utility with the dnf package manager for CentOS, Fedora, and Red Hatsudo dnf install prename# Install rename utility with the pacman package manager for Arch Linux / Manjaro Linuxsudo pacman -S perl-rename
以下にrename
コマンド構文を示します。
rename <options> <perlexpr> <files>
複数のファイルの名前を変更
rename
コマンド構文を念頭に置いて、同じパターンを持つファイルの名前を変更できるようになりました。 rename
コマンドの優れた点は、”Forループで複数のファイルの名前を変更する”セクションで行ったように、複数のファイルの名前を変更するループ関数を宣言
おそらく、あなたはそれらの上に特定の単語を持つファイルの名前を変更したいです。 その場合は、以下のサンプルコマンドのPerl正規表現('s/file/myfile/'
)を見てください。 Perl正規表現は、Perlプログラミング言語に基づいて文字列パターンを定義します。
誤って他のファイルの名前を変更しないようにするには、以下に示すように、-n
オプションを追加して、名前を変更する前に、影響を受けるすべてのフ
rename -n 's/file/myfile/' *.txt
次に、以下のrename
コマンドのいずれかを実行して、作業ディレクトリまたは~/test/*.txt
ディレクトリ内の各テキストファイル名の単語file
をmyfile
に置き換えます。
Perl式('s/file/myfile/'
)では、s
は置換を表します。 コマンドの名前を変更したファイルを返すために、-v
オプションが追加されていることに注意してください。
# Replace 'file' with 'myfile' in each file's name in the working directoryrename -v 's/file/myfile/' *.txt# Replace 'file' with 'myfile' in each file's name in the ~/test directoryrename -v 's/file/myfile/' ~/test/*.txt
以下では、テキストファイル内の各”file”単語の名前が”myfile”に変更されていることがわかります。”
代わりにすべてのファイルの名前を変更する場合は、ファイルパスを指定するときにファイル拡張子を削除します。,
rename -v 's/file/myfile/' ~/test/*
ファイル拡張子を変更する
ファイル名以外にも、rename
コマンドはファイル拡張子の名前を変更します。 おそらく、間違ったファイル拡張子を持つファイルを作成したことがあります。 その場合、rename
コマンドを実行するときに、Perl式で変更するファイル拡張子を指定します。
以下のrename
コマンドを実行して、~/test
ディレクトリ内のすべてのファイル(*
)拡張子を.txt
から.html
に変更します。 Perl式の$
記号は、文字列の末尾(.txt
)を各ファイル名に一致させるため、コマンドは.txt
ファイル拡張子のみを変更します。$
記号は、$
文字列の末尾(.txt
) また、複数のファイルの名前を変更する場合と同様に、-v
オプションを追加して、コマンドが行う各変更を一覧表示します。
rename -v 's/.txt$/.html/' *.txt
代わりにすべてのファイル拡張子を削除するには、次のようにPerl式の置換文字列を削除します:
rename -v 's/.txt$//' *.txt
あなたは下の画像で見るように,ザ.txt拡張子がに変更されました。html
ファイル名を大文字と小文字に変更する
誤ったファイル拡張子の代わりに、ファイル名を小文字で処理している可能性があり、その逆もあります。 おそらく、ファイル名が小文字であることを知らずに、大文字でファイルを検索しようとしている可能性があります。
Linuxでは大文字と小文字が区別されるため、各ファイル名の大文字と小文字が正しく設定されていることを確認しましょう。 文字の場合は、基本的に小文字と大文字の間のテキストの区別です。
以下のいずれかのrename
コマンドを実行して、作業ディレクトリ(*
)内のすべての小文字(a-z
)ファイル名を大文字(A-Z
)に変更し、その逆も同様です。
# Change filename from lowercase to uppercaserename -v 'y/a-z/A-Z/' *# Change filename from uppercase to lowercaserename -v 'y/A-Z/a-z/' *
ファイル名の大文字と小文字を変更した両方の結果を下に見ることができます。
ファイル名のスペースの置き換えと削除
ファイル名の大文字と小文字のように、ファイル名にスペースがある場合、ファイルを見つけるのに問題があ スペースを文字に置き換えるか、スペースを完全に削除することで、それを修正しましょう。
以下のrename
コマンドを実行して、作業ディレクトリ内のすべてのファイル名のスペースをアンダースコア(_
)に置き換えます。 Underscoreはメタ文字なので、バックスラッシュ(\_
)でエスケープしてアンダースコアを文字通り宣言します。 メタ文字(Metacharacters)は、コンピュータプログラムにおける特殊な意味を持つ特殊文字である。
注意Perl式のg
は、最初のものだけでなく、すべての一致(スペース)を置き換えるようにコマンドに指示します。
rename -v 's/ /\_/g' *
以下では、コマンドがすべてのスペースをアンダースコアに置き換えたことがわかります。
ファイル名のすべてのスペースを文字で埋めるのではなく削除するには、以下のコマンドを実行します。
以下のPerl式では、空白(/ *
)の後のアスタリスクは、最初のスペースだけでなく、ファイル名のすべてのスペースに一致します。 置換文字は空(//
)なので、rename
コマンドはすべての(g
)スペースを削除します。
rename -v "s/ *//g" *
今、あなたはすべてのスペースが各ファイル名から削除されていることを下に見ることができます。
ファイル名の各単語の最初の文字を大文字にする
スペースを保持し、代わりにファイル名の各単語の最初の文字を大文字にする場合は、より複雑なPerl式が必要になります。 以下のサンプルコマンドを見てみましょう。
以下のPerl式は、単語境界内の任意の単一文字(\w
)に一致します(\b
)文字がピリオドでもアポストロフィでもない限り(?<!
)。 次に、rename
コマンドはその文字を大文字に変換します(u$&
)。
rename -v 's/(?<!)\b\w*/\u$&/g' *
以下では、ファイル名の各単語が大文字で始まり、ファイル拡張子は変更されていないことがわかります。
結論
このチュートリアルでは、GUIとコマンドライン端末を介してLinuxファイルの名前を変更する多くの方法を学びました。 これで、単一および複数のファイルの名前を一度に操作する方法をしっかりと理解できました。
Linuxシェルスクリプトを学び、Linuxでファイル名の変更を自動化するスクリプトを作成してみませんか?