新Linux入門|Linuxのファイル名のルールをわかりやすく解説

 Linuxを使っていて、「ファイル名が認識されない」「コマンドがうまく動かない」といった経験はありませんか?
それは、ファイル名のルールを守っていないことが原因かもしれません。

Linuxでは、ファイル名の付け方にいくつかの決まりがあります。
これらを理解しておくことで、システム管理やスクリプト作成がぐっとスムーズになります。
ここでは、AlmaLinux 9.6 を例に、ファイル名のルールや注意点をわかりやすく解説します。

📁ファイル名に使える文字

Linuxでは、ファイル名に使える文字が決まっています。
基本的に、英数字・ピリオド( . )・アンダースコア( _ )・ダッシュ( - ) が安全に使用できます。

使用できる文字説明
英字(a~z, A~Z)大文字・小文字どちらも使用可能
数字(0~9)ファイル名の途中や末尾に使用可能
ピリオド( . )拡張子の区切りや隠しファイルの先頭に使われる。
アンダースコア( _ )スペースの代わりに使うのに便利
ダッシュ( - )シンプルな区切りとしてよく使われる。

💬 ポイント
ファイル名に スペースや記号 を使うと、コマンドラインで扱いにくくなります。
「レポート 2025.txt」ではなく、「report_2025.txt」とするのがおすすめです。

🔠 大文字と小文字は区別される

Linuxでは、ファイル名の 大文字と小文字は別物 として扱われます。

[suzuki@AlmaLinux ~]$ touch File.txt file.txt
[suzuki@AlmaLinux ~]$ ls
File.txt  file.txt

💬 解説
Windowsでは同じ名前とみなされる「File.txt」と「file.txt」も、
Linuxでは別のファイルとして存在できます。
スクリプト作成時などに混乱しやすいため、ファイル名の命名規則は統一しておくと良いでしょう。

⚠️ 使用を避けるべき特殊文字

 一部の文字は、Linuxのシェル(bashなど)で特別な意味を持つため、ファイル名には使用しないのが安全です。

使用を避ける文字理由
/ディレクトリを区切るために使用される。ファイル名に使うとパスと誤認される。
*ワイルドカードとして、任意の文字列にマッチする特殊記号として扱われる。
?任意の1文字を表すメタ文字として使われる。
:パスやコマンドの区切り記号として使われる(PATH変数など)。
;コマンドを連続して実行する区切り記号として扱われる。
!bashの履歴展開(history expansion)に使われるため、思わぬコマンドが実行される危険がある。
`コマンド置換(command substitution)に使われるため、意図しないコマンド実行を招く可能性がある。
&コマンドをバックグラウンドで実行する制御演算子。
\エスケープ文字として使われる。特別な意味を無効化するための文字。
" '文字列を囲むクォートとして使われるため、誤って閉じないと構文エラーになる。
(スペース)コマンドや引数の区切りとして扱われるため、ファイル名に含めると誤動作の原因になる。

💬 補足
これらの文字はすべて bashシェルで特別な意味を持つ「メタキャラクタ」 です。
ファイル名に含めると、意図しないコマンド実行や構文エラーの原因になります。
もしどうしても使う必要がある場合は、ダブルクォーテーション(" ")で囲むか、
バックスラッシュ(\)でエスケープして安全に扱いましょう。

💬 例:スペースを含むファイル名を作成した場合

[suzuki@AlmaLinux ~]$ touch "my file.txt"
[suzuki@AlmaLinux ~]$ ls
my file.txt

⚙️ ポイント
スペースや特殊文字を使いたい場合は、ダブルクォーテーション(" ") で囲むか、
バックスラッシュ(\) でエスケープします。

例:エスケープ

[suzuki@AlmaLinux ~]$ cat my\ file.txt

📏 ファイル名の長さの制限

Linuxのファイル名には長さ制限があります。
一般的なファイルシステム(ext4など)では、1ファイル名につき最大255文字 まで使用できます。

項目制限値
ファイル名の長さ最大255文字
パス全体の長さ最大4096文字

💬 注意
ファイル名が長すぎると、バックアップソフトやファイル転送ツールで扱えないことがあります。
命名は短く、意味が分かる範囲にまとめるのがベストです。

👀 隠しファイル(ドットファイル)

ファイル名の先頭に ピリオド(.) が付いているファイルは、隠しファイルとして扱われます。

[suzuki@AlmaLinux ~]$ ls
Desktop  Documents
[suzuki@AlmaLinux ~]$ ls -a
.  ..  .bashrc  .bash_profile  Desktop  Documents

💬 解説
.bashrc や .profile のような設定ファイルは通常、非表示になっています。
ls -a オプションを使うことで、すべてのファイルを表示できます。

🔄 ファイル名を変更する(mvコマンド)

ファイル名を変更するには mv(move)コマンド を使用します。
mvは「移動(move)」のほかに「リネーム(rename)」の意味も持ちます。

コマンド書式

mv [オプション] 旧ファイル名 新ファイル名
オプション説明
-i上書き前に確認する。
-v実行した処理を表示する。
-n上書きしない(安全モード)

使用例

[suzuki@AlmaLinux ~]$ mv -v old_name.txt new_name.txt
renamed 'old_name.txt' -> 'new_name.txt'

💬 ポイント

  • mv は上書きの危険があるため、-i を付けて確認するのがおすすめ。
  • ファイルを別のディレクトリに移動する際にも使用できます。

🧰 ファイル名を扱う基本コマンド

コマンド主な用途使用例
lsファイルの一覧表示ls -a で隠しファイルも表示
mvファイル名変更・移動mv old new
cpファイルコピーcp file1 file2
rmファイル削除rm file.txt
touch新規ファイル作成touch newfile.txt

💬 注意
削除(rm)コマンドは取り消せないため、ファイル名のタイプミスに要注意です。

📋 Linuxのファイル名ルールまとめ

ルール説明
大小文字の区別"File.txt" と "file.txt" は別ファイルとして扱われる。
使用可能な文字英数字、ピリオド、アンダースコア、ダッシュが安全
特殊文字の制限スペースや「*」「?」などは避けるべき
最大長255文字以内(ext4ファイルシステムの場合)
ドットで始まるファイル隠しファイルとして扱われる(例:.bashrc)
予約語の回避システムファイル名やデバイス名(例:/dev/null)は避ける。
命名のコツスペースの代わりに「_」や「-」を使用する。

💬 おすすめ命名例

report_2025.txt
config-backup.tar.gz
my_script_v2.sh

🌱 まとめ:正しい命名はLinux管理の第一歩!

Linuxでは、ファイル名の付け方一つでコマンド操作の効率が変わります。
大文字・小文字の区別や特殊文字の扱いに気をつけることで、
スクリプトの誤動作やファイル操作のミスを防げます。

💬 一言でまとめると

「Linuxのファイル名は自由度が高いけど、ルールを守るともっと快適!」