ウェブサイト検索

Linux ダッシュで始まるファイルの名前を変更する


ファイルに名前を付けるときは、ファイル名の先頭または末尾にハイフン (ダッシュ)、スペース、アンダースコア、ピリオド (ドット) を使用しないのが一般的であり、推奨される方法です。ただし、場合によっては、誤ってファイル名をダッシュで始めることがあります。それは問題ありませんが、ほとんどすべての Linux コマンドのオプション (スイッチ) がダッシュで始まるため、この名前付けには少し問題がある可能性があります。この場合、ダッシュで始まるファイル名を Linux コマンドに渡すと、コマンド オプション (スイッチ) として扱われ、失敗する可能性が高くなります。最も一般的な問題は、このファイルの名前を変更してダッシュを削除しようとしたときに発生します。ただし、Linux OS でダッシュで始まるファイルの名前を変更する方法をこれから説明するので、これはもう問題にはなりません。

: ここで示す方法はUbuntu 20.04 LTSでテストされています。ただし、他の Linux ディストリビューションでもこれに従うことができます。

まず、ダッシュで始まるファイルの名前を変更するとどうなるかを見てみましょう。以下の出力は、mv (rename) コマンドがオプション以外の引数 (ファイル名「-doc」) をコマンド オプションとして扱い、「無効なオプション」エラーを生成していることを示しています。

現在のディレクトリ内のダッシュで始まるすべてのファイルを表示するには、次のコマンドを使用します。

$ ls -- -*

ダッシュで始まるファイル名を変更

ダッシュで始まるファイルの名前を変更するには 2 つの方法があります。両方について話し合いましょう。

方法 1

ダッシュで始まるファイルの名前を変更するには、ファイル名の先頭に「./」を追加します。 「」は現在のターミナル ディレクトリを示し、「/」は名前が現在のディレクトリ内のファイルを指していることを示します。ファイル名の前にある「./」の目的は、コマンドからダッシュを隠すことです。

たとえば、現在のディレクトリ内の「-doc」という名前のファイルの名前を「mydoc」に変更するには、コマンドは次のようになります。

$ sudo mv ./-doc mydoc

これにより、ファイルの名前が「mydoc」に変更されます。

名前を変更するファイルが別のディレクトリにある場合は、ファイルのパスを指定します。たとえば、~/Documents ディレクトリにあるファイル「-doc 」の名前を「mydoc 」に変更するには、次のコマンドを実行します。

$ sudo mv ~/Documents/-doc ~/Documents/mydoc

方法 2

ダッシュで始まるファイルの名前を変更するもう 1 つの方法は、ファイル名の前に二重ダッシュ「-」を使用することです。 「-」は、オプションの終了を示し、それ以降のオプション処理を無効にするために Linux コマンドで使用されます。 「-」の後は何もオプションとして考慮されません。オプション処理を終了します。それ以外の場合、コマンドはオプション以外の引数をオプション (フラグ) として扱い、失敗します。したがって、オプション以外の引数がダッシュで始まる場合は、「-」を使用する必要があります。

ファイル名「-doc 」を「mydoc」に変更するには、次のようにファイル名の前に「–」を使用します。

$ sudo mv -- -doc mydoc

これにより、ファイルの名前が「mydoc」に変更されます。

関連記事: