🐧 Linux 総合学習プラットフォーム
基本操作・コマンド ・ 入門

ファイルとディレクトリの操作

ファイルやフォルダは作る・コピーする・移動(名前変更)する・消す、の4操作が基本です。mkdir でフォルダを作り、touch で空ファイルを作成、cp で複製、mv で移動や改名、rm で削除します。rm は確認なしで消えるため、最初は対象をよく見てから実行する習慣をつけます。

ファイルとディレクトリの扱いは、Linux操作の中核です。やることを煎じ詰めると「作る・複製する・移動(改名)する・消す」の4つに集約され、それぞれに対応するコマンドがあります。Linuxではデータの保存先であるディレクトリだけでなく、ハードウェアやプロセスへの入り口までファイルとして表現するため、ファイルを操作することは事実上Linuxそのものを操作することに等しい、と言われます。まずは基本の4操作を、手を動かしながら身体で覚えていきましょう。どのコマンドも、操作の前後に ls で状態を確かめることをセットにすると、何が起きたのかが目で追えて理解が早くなります。

作る — mkdir と touch

入れ物であるディレクトリを作るのが mkdir(make directory)です。mkdir universe とすればカレントディレクトリの直下に universe ができます。途中の階層がまだ存在しないのに mkdir a/b/c のように一気に深く作ろうとすると、通常は「そのようなディレクトリはありません」とエラーになります。そんなときは -p オプションを付けます。-p は不足している親ディレクトリ(この例なら a と a/b)も連鎖的に作ってくれるので、プロジェクト用のフォルダ構造をまとめて用意したいときに重宝します。すでに存在するディレクトリに対して -p を使ってもエラーにならない、という性質も、繰り返し実行するスクリプトの中で便利に働きます。

中身が空のファイルを作るには touch を使います。本来 touch はファイルのタイムスタンプ(最終更新時刻)を現在時刻に更新するコマンドですが、指定した名前のファイルが存在しないときは、その名前で空ファイルを新規作成します。touch memo.txt のように書き、複数まとめて touch a.txt b.txt c.txt と作ることもできます。touch も mkdir も、成功すると何も表示しません(無言で成功)。Linuxのコマンドは「うまくいったら黙る」のが流儀なので、本当に作れたかどうかは続けて ls を打って一覧で確かめる、という確認の習慣をセットで身につけてください。逆に、何かメッセージが出たら、それは多くの場合エラーや警告です。

複製する cp と 移動・改名する mv

ファイルを複製するのが cp(copy)です。書式は cp コピー元 コピー先 で、cp apple orange とすれば apple はそのまま残り、その複製として orange が新しくできます。ディレクトリをまるごと複製したいときは中身も含めて再帰的にコピーする -r を付けて cp -r src dst とします。複数のファイルを最後に指定したディレクトリへまとめて入れる cp file1 file2 dir/ という形も便利で、ワイルドカード * を使った cp *.txt backup/ のような一括コピーもよく使います。設定ファイルを編集する前に cp httpd.conf httpd.conf.bak のように複製してバックアップを取っておくのは、現場で身につけたい安全策のひとつです。

ただし cp には注意点があります。コピー先に同じ名前のファイルがあると、何も聞かずに上書きしてしまいます。大事なファイルを意図せず潰さないよう、上書き前に確認を出す -i を付けると安全です。また、通常の cp ではコピーした時刻が「いま」になりますが、-a(または -p)を付けると元ファイルの更新時刻や権限を保ったまま複製でき、バックアップ用途で重宝します。

mv(move)は、ファイルの置き場所を変える「移動」と、名前を変える「改名」の両方を担います。Linuxではこの2つを区別せず、どちらも同じ mv で行うのが特徴です。mv orange mikan のように、移動先に存在しない名前を指定すると改名になり、mv mikan citrus/ のように既存のディレクトリを指定するとその中への移動になります。複数ファイルを mv a.txt b.txt dir/ とまとめて移動することもできます。cp と違って元のファイルは残らず移動するので、こちらも上書き事故を避けたいときは -i を添えましょう。改名と移動が同じコマンドというのは最初は戸惑いますが、「ファイルのパスを書き換える操作」と捉えると一本の理屈で理解できます。

消す — rm と rmdir、そして注意点

削除はファイルなら rm(remove)、空のディレクトリなら rmdir(remove directory)を使います。rmdir は中身が残っていると「ディレクトリは空ではありません」とエラーを出して削除しないので、誤って中身ごと消す事故を防ぐ安全弁になります。中身ごとディレクトリを消したいときは、再帰的に削除する -r を付けて rm -r dir とします。複数ファイルの一括削除や、rm *.tmp のようなワイルドカード指定もできますが、ここからが最も慎重さの要る領域です。実行結果は ls で消えたことを確かめます。

最も強く意識してほしいのは、rm はゴミ箱を経由せず、確認もなしに即座に消すという点です。グラフィカルなファイルマネージャの「削除」とは性質が違い、消したものは原則として戻りません。とりわけ rm -rf(-f は確認や警告を抑制する強制削除)や、ワイルドカード * を組み合わせた削除は強力で、対象を打ち間違えると意図しないファイルまで巻き込みます。たとえば rm -rf / のような操作はシステム全体を破壊しかねません。慣れるまでは、削除の前に同じ引数で ls を打って「何が対象になるか」を一覧で先に確認し、それから rm に置き換える、というひと手間をかけると安全です。

もうひとつの防御策が -i オプションです。rm -i file とすると1つずつ「削除してよいか」を尋ねてくれるので、まとめ消しの前に対象を目視できます。スペースの入れ間違いも危険で、rm file1 file2 のつもりが余計な空白で別の意味になることもあります。これらのコマンドが ls の表示する標準出力を頼りに状態を確認しながら進むのと同様、削除でも「実行前に目で確かめる」ことが最大の防御になります。作る・複製する・移動する操作は失敗してもやり直せますが、消す操作だけは取り返しがつかない——この非対称性を覚えておくと、自然と慎重な手つきが身につきます。

この項目に出てくる用語

ディレクトリでぃれくとり
ファイルをまとめて入れる「フォルダ」のこと。
標準出力ひょうじゅんしゅつりょく
コマンドの結果が既定で表示される先(通常は画面)。

関連コマンド

mkdirtouchcpmvrm

▶ 学習アプリでこの続きを学ぶ・演習する