ディレクトリの名前変更は、Linuxシステムで実行する必要のある最も基本的な操作の1つです。数回クリックするか、コマンドラインターミナルを使用して、GUIファイルマネージャからディレクトリの名前を変更できます。
この記事では、コマンドラインを使用してディレクトリの名前を変更する方法について説明します。
LinuxおよびUnixライクなオペレーティングシステムでは、mv
を使用できます。 (moveの略)コマンドを使用して、ファイルとディレクトリの名前を変更したり、ある場所から別の場所に移動したりします。
mv
の構文 ディレクトリを移動するためのコマンドは次のとおりです。
mv [OPTIONS] source destination
たとえば、ディレクトリの名前をdir1
に変更するには dir2
として 実行します:
mv dir1 dir2
ディレクトリの名前を変更するときは、mv
に正確に2つの引数を指定する必要があります 指図。最初の引数はディレクトリの現在の名前で、2番目の引数は新しい名前です。
dir2
の場合は注意することが重要です すでに存在します、dir1
dir2
に移動します ディレクトリ。
現在の作業ディレクトリにないディレクトリの名前を変更するには、絶対パスまたは相対パスのいずれかを指定する必要があります。
mv /home/user/dir1 /home/user/dir2
複数のディレクトリの名前を変更する#
単一のディレクトリの名前を変更するのは簡単な作業ですが、複数のディレクトリの名前を一度に変更することは、特に新しいLinuxユーザーにとっては難しい場合があります。
複数のディレクトリの名前を一度に変更する必要はほとんどありません。
mv
を使用して複数のディレクトリの名前を変更する #
mv
コマンドは、一度に1つのファイルのみ名前を変更できます。ただし、find
などの他のコマンドと組み合わせて使用することもできます。 またはループ内で複数のファイルの名前を一度に変更します。
これは、Bashのfor
の使用方法を示す例です。 現在の作業ディレクトリ内のすべてのディレクトリの名前に現在の日付を追加するループ:
for d in *; do
if [ -d "$d" ]; then
mv -- "$d" "${d}_$(date +%Y%m%d)"
fi
done
コードを1行ずつ分析してみましょう:
- 最初の行はループを作成し、すべてのファイルのリストを繰り返します。
- 2行目は、ファイルがディレクトリかどうかを確認します。
- 3行目は、現在の日付を各ディレクトリに追加します。
これは、mv
を使用した同じタスクの解決策です。 find
と組み合わせて :
find . -mindepth 1 -prune -type d -exec sh -c 'd="{}"; mv -- "$d" "${d}_$(date +%Y%m%d)"' \;
find
コマンドはすべてのディレクトリをmv
に渡します -exec
を使用して1つずつ オプション。文字列{}
現在処理中のディレクトリの名前です。
例からわかるように、mv
を使用して複数のディレクトリの名前を変更します Bashスクリプトに関する十分な知識が必要なため、簡単な作業ではありません。
rename
を使用して複数のディレクトリの名前を変更する #
rename
コマンドは、複数のファイルとディレクトリの名前を変更するために使用されます。このコマンドは、mv
よりも高度です。 正規表現の基本的な知識が必要です。
rename
には2つのバージョンがあります 異なる構文のコマンド。 Perlバージョンのrename
を使用します 指図。指定されたperl正規表現に従ってファイルの名前が変更されます。
次の例は、現在の作業ディレクトリ内のすべてのディレクトリの名前のスペースをアンダースコアに置き換える方法を示しています。
find . -mindepth 1 -prune -type d | rename 'y/ /_/'
安全のために、-n
を渡してください rename
するオプション 名前を変更せずに名前を変更するディレクトリの名前を出力します。
ディレクトリ名を小文字に変換する方法を示す別の例を次に示します。
find . -mindepth 1 -prune -type d | rename 'y/A-Z/a-z/'
結論#
mv
の使用方法を説明しました ディレクトリの名前を変更するコマンド。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。