Linux – 基本的なファイルシステム操作コマンド

目次

概要

Linux で日常的に使用する、ファイルやディレクトリを操作するための基本的なコマンドについて解説します。 これらのコマンドは、ファイルシステムを操作する上で最も重要な基礎となります。

pwd: カレントディレクトリの表示

pwd コマンドは、現在の作業ディレクトリ(カレントディレクトリ)の絶対パスを表示するために使用されます。作業ディレクトリとは、現在ユーザーが作業しているディレクトリのことを指します。コマンドラインやプログラムがファイルやディレクトリを扱う際の基準となる位置です。

基本的な使い方

$ pwd
/home/ubuntu

このコマンドを実行すると、現在の作業ディレクトリの絶対パスが表示されます。

オプション

pwd コマンドには、以下のオプションがあります。

オプション 説明
-P (–physical) シンボリックリンクを解決して物理的なパスを表示します。
-L (–logical) シンボリックリンクをそのまま表示します(デフォルトの動作)。
# シンボリックリンクを作成し、そのリンクに移動した場合
$ cd /tmp
$ ln -s /home/username symlink
$ cd symlink

# デフォルトの動作(論理パスの表示)
$ pwd
/tmp/symlink

# 物理パスの表示
$ pwd -P
/home/username

この例では、/tmp/symlink/home/username へのシンボリックリンクです。pwd コマンドはデフォルトでシンボリックリンクをそのまま表示しますが、-P オプションを使用するとリンクを解決して物理的なパス /home/username を表示します。

cd: カレントディレクトリを変更する

cd コマンドは、カレントディレクトリ(現在の作業ディレクトリ)を変更するために使用されます。これにより、ファイルシステム内の異なるディレクトリに移動できます。

基本的な使い方

cd <directory>

<directory> には移動したいディレクトリのパスを指定します。

パスの指定方法

ファイルやディレクトリを指定する際には、絶対パスと相対パスのどちらかを使用します。以下に、パスの指定方法について詳しく説明します。

パス 説明
/path/to/move 絶対パス。ルートディレクトリからのフルパスを指定します。
path/to/move 相対パス。現在のディレクトリからの相対的なパスを指定します。
/ ルートディレクトリ。
. 現在のディレクトリ。
.. 親ディレクトリ。現在のディレクトリの一つ上のディレクトリを指します。
~ ホームディレクトリ。現在のユーザーのホームディレクトリを指します。
前のディレクトリ。直前にいたディレクトリを指します。
  • 絶対パス 絶対パスは、ルートディレクトリ(/)から始まるフルパスです。例えば、/path/to/move はルートディレクトリから path ディレクトリ、次に to ディレクトリ、そして move ディレクトリへと進むパスを表します。絶対パスは、どのディレクトリにいても同じ場所を指すため、パスの一意性が保証されます。

  • 相対パス 相対パスは、現在の作業ディレクトリからの相対的なパスを使用します。例えば、path/to/move は現在のディレクトリから path ディレクトリ、次に to ディレクトリ、そして move ディレクトリへと進むパスを表します。相対パスは、現在の作業ディレクトリが変わると指す場所も変わるため、柔軟にファイルやディレクトリを指定することができます。

  • 現在のディレクトリ . は現在のディレクトリを指します。例えば、./script.sh は現在のディレクトリにある script.sh を指します。

  • 親ディレクトリ .. は親ディレクトリを指します。例えば、cd ../script.sh は親ディレクトリにある script.sh を指します。

  • ホームディレクトリ ~はホームディレクトリを指します。ホームディレクトリは、現在のユーザーの個人用ディレクトリであり、/home/username のようなパスになります。例えば、~/script.sh はホームディレクトリにある script.sh を指します。

  • 前のディレクトリ -は直前にいたディレクトリを指します。例えば、cd - コマンドは、直前にいたディレクトリに戻ります。

touch: タイムスタンプの更新および新しいファイルの作成

touch コマンドは、ファイルのタイムスタンプ (更新日時およびアクセス日時) を変更するために使用されますが、指定したファイルが存在しない場合には新しい空のファイルを作成することもできます。

基本的な使い方

touch <filename>

<filename> には作成したいファイルの名前や、タイムスタンプを変更したいファイルの名前を指定します。

オプション

touch コマンドには、以下のオプションがあります。

オプション 説明
-a アクセス日時のみを変更します。
-m 更新日時のみを変更します。
–time=WORD 更新対象を指定します。
-c, –no-create ファイルが存在しない場合、作成しません。
-r, –reference=FILE FILE のタイムスタンプを現在の日時の代わりに使用します。
-t STAMP STAMP を解析して現在の日時の代わりに使用します。
-d, –date=STRING STRING を解析して現在の日時の代わりに使用します。
-h, –no-dereference シンボリックリンク自体のタイムスタンプを変更します。
–help このヘルプを表示して終了します。
–version バージョン情報を表示して終了します。

補足

  • --time オプションの WORD は access, atime, use なら -a と同等、modify, mtime なら -m と同等です。
  • -t オプションの STAMP の書式は、[[CC]YY]MMDDhhmm[.ss] になります。
    • CC: 西暦上 2 桁、YY: 西暦下 2 桁、MM: 月、DD: 日、hh: 時(24 時間)、mm: 分、ss: 秒
  • -d オプションの STRING は、date コマンドで使用できる形式と同様です。いくつか例を示します。
    • YYYY-MM-DD HH:MM:SS
    • YYYY-MM-DD
    • MM/DD/YY
    • DD.MM.YYYY
    • next Monday
    • tomorrow
    • yesterday
    • now
    • last week
    • 2 days ago
    • 2025-01-28 15:25:03

  • 新しい空のファイルを作成する:

    touch newfile.txt

    このコマンドを実行すると、newfile.txt が存在しない場合、newfile.txt という名前の新しい空のファイルが作成されます。

  • 既存のファイルのタイムスタンプを更新する:

    touch existingfile.txt
  • 複数のファイルを一度に作成または更新する:

    touch file1.txt file2.txt file3.txt

    このコマンドを実行すると、file1.txtfile2.txtfile3.txt の各ファイルが作成またはタイムスタンプが更新されます。

  • 日時を指定して更新する (-t オプション):

    touch -t 202501260914.30 file.txt

    このコマンドを実行すると、file.txt のタイムスタンプが 2025年1月26日09時14分30秒 に更新されます。

mkdir: ディレクトリを作成する

mkdir コマンドは、新しいディレクトリを作成するために使用されます。以下に mkdir コマンドの使い方を説明します。

基本的な使い方

mkdir <directory_name>

<directory_name> には作成したいディレクトリの名前を指定します。

オプション

オプション 説明
-m, –mode=MODE ディレクトリの権限。
-p, –parents 既存の場合はエラーを出さず、必要に応じて親ディレクトリを作成します。
-v, –verbose 作成された各ディレクトリに対してメッセージを表示します。

  • 単一のディレクトリを作成する:

    mkdir new_directory

    このコマンドを実行すると、new_directory という名前のディレクトリが現在のディレクトリ内に作成されます。

  • 親ディレクトリも一緒に作成する (-p オプション):

    -p オプションを使用すると、指定したパスの親ディレクトリが存在しない場合でも、一緒に作成することができます。 また、ディレクトリがすでに存在する場合にエラーにしない場合にも使用できます。

    mkdir -p /path/to/new_directory

    このコマンドを実行すると、/path/to が存在しない場合でも、/path/to/new_directory を作成します。

  • 権限を指定して作成する (-m オプション)

    mkdir -m 755 new_directory

    このコマンドを実行すると、new_directory が作成され、ディレクトリの権限が 755 に設定されます。

rmdir: 空のディレクトリを削除する

rmdir コマンドは、空のディレクトリを削除するために使用されます。このコマンドは、指定したディレクトリが空でない場合にはエラーを返します。

基本的な使い方

rmdir <directory_name>

<directory_name> には削除したいディレクトリの名前を指定します。

オプション

オプション 説明
–ignore-fail-on-non-empty ディレクトリが空でない場合にエラーにしません。
-p, –parents ディレクトリとその上位のディレクトリを削除します。
-v, –verbose 処理されたすべてのディレクトリに対してメッセージを出力します。

  • 空のディレクトリを削除する:

    rmdir empty_directory

    このコマンドを実行すると、empty_directory が削除されます。empty_directory が空でない場合、エラーが表示されます。

  • 複数のディレクトリを一度に削除する:

    rmdir dir1 dir2 dir3

    このコマンドを実行すると、dir1dir2dir3 という名前の空のディレクトリが削除されます。これらのディレクトリが空でない場合、エラーが表示されます。

  • 上位のディレクトリを一度に削除する (-p オプション):

    -p オプションを使用すると、指定したディレクトリとその上位のディレクトリを一緒に削除することができます。ただし、上位のディレクトリも空である必要があります。

    rmdir -p a/b/c

    このコマンドは、rmdir a/b/c a/b a と同じです。これらのディレクトリが空でない場合、エラーが表示されます。

rm: ファイルやディレクトリを削除する

rm コマンドは、ファイルやディレクトリを削除するために使用されます。以下に rm コマンドの使い方を説明します。

基本的な使い方

rm <file_name>

<file_name> には削除したいファイルの名前を指定します。

オプション

オプション 説明
-f, –force 存在しないファイルや引数を無視し、プロンプトを表示しません。
-i 削除する前に毎回確認します。
-I 3 つ以上のファイルを削除する場合、または再帰的に削除する場合に 1 回だけ確認します。
–interactive[=WHEN] WHEN に応じてプロンプトを表示します。never, once (-I), always (-i) が指定できます。WHEN が指定されていない場合は常にプロンプトを表示します。
–one-file-system 階層を再帰的に削除する際に、コマンドライン引数と異なるファイルシステム上のディレクトリをスキップします。
–no-preserve-root /を特別扱いしません。
–preserve-root[=all] / を削除しません(デフォルト)。all を指定すると、親ディレクトリと異なるデバイス上のコマンドライン引数を拒否します。
-r, -R, –recursive ディレクトリとその中身を再帰的に削除します。
-d, –dir 空のディレクトリを削除します。
-v, –verbose 実行される操作を説明します。

  • 単一のファイルを削除する:

    rm file.txt

    このコマンドを実行すると、file.txt が削除されます。

  • 確認プロンプトなしで強制的に削除する (-f オプション):

    -f オプションを使用すると、確認プロンプトなしで強制的にファイルを削除できます。

    rm -f file.txt

    このコマンドは、ファイルが存在しない場合でもエラーメッセージを表示せずに処理を続行します。

  • ディレクトリを再帰的に削除する (-r または -R オプション):

    -r または -R オプションを使用すると、ディレクトリとその中のすべてのファイルやサブディレクトリを再帰的に削除できます。

    rm -r directory_name

    このコマンドを実行すると、directory_name とその中のすべての内容が削除されます。

  • 確認プロンプトを表示する (-i オプション):

    重要なファイルやディレクトリを削除する際には、確認プロンプトを表示する -i オプションを使用することをお勧めします。

    rm -i important_file.txt

    このコマンドを実行すると、削除前に確認プロンプトが表示されます。

cp: ファイルやディレクトリをコピーする

cp コマンドは、ファイルやディレクトリをコピーするために使用されます。以下に cp コマンドの使い方を説明します。

基本的な使い方

cp <source> <destination>

<source> にはコピーしたいファイルやディレクトリの名前を、<destination> にはコピー先のファイル名やディレクトリ名を指定します。

オプション

  • 単一のファイルをコピーする:

    cp file1.txt file2.txt

    このコマンドを実行すると、file1.txt の内容が file2.txt にコピーされます。file2.txt が存在しない場合は新しく作成されます。

  • ディレクトリの再帰的コピー (-r オプション):

    ディレクトリを再帰的にコピーする場合は、-r オプションを使用します。

    cp -r source_directory destination_directory

    このコマンドを実行すると、source_directory とその中のすべてのファイルとサブディレクトリが destination_directory にコピーされます。

  • 上書き確認のプロンプトを表示する (-i オプション):

    -i オプションを使用すると、コピー先に同じ名前のファイルが存在する場合に上書きするか確認するプロンプトが表示されます。

    cp -i file1.txt file2.txt
  • コピーの進行状況を表示する (-v オプション):

    -v オプションを使用すると、コピーの進行状況が表示されます。

    cp -v file1.txt file2.txt
  • コピー先のファイルを強制的に上書きする (-f オプション):

    -f オプションを使用すると、コピー先のファイルを強制的に上書きします。

    cp -f file1.txt file2.txt

ディレクトリの末尾の / の有無による挙動の差異

  • スラッシュなし: cp -r /src /dest

    • /src ディレクトリ自体を /dest ディレクトリにコピーします。結果として、/dest/src が作成されます。
  • スラッシュあり: cp -r /src/ /dest

    • /src ディレクトリ内の内容を /dest ディレクトリにコピーします。結果として、/dest 内に /src の内容が直接配置されます。

mv: ファイルやディレクトリを移動または名前変更する

mv コマンドは、ファイルやディレクトリを移動するために使用されます。また、ファイルやディレクトリの名前を変更することもできます。

基本的な使い方

mv <source> <destination>

<source> には移動または名前を変更したいファイルやディレクトリの名前を、<destination> には移動先のパスまたは新しい名前を指定します。

  • ファイルを別のディレクトリに移動する:

    mv file.txt /path/to/destination/

    このコマンドを実行すると、file.txt/path/to/destination/ ディレクトリに移動されます。

  • ファイルの名前を変更する:

    mv oldname.txt newname.txt

    このコマンドを実行すると、oldname.txt の名前が newname.txt に変更されます。

  • ディレクトリを別の場所に移動する:

    mv /path/to/source_directory /path/to/destination/

    このコマンドを実行すると、source_directory/path/to/destination/ に移動されます。

  • 複数のファイルを一度に別のディレクトリに移動する:

    mv file1.txt file2.txt /path/to/destination/

    このコマンドを実行すると、file1.txtfile2.txt/path/to/destination/ ディレクトリに移動されます。

  • 上書き確認のプロンプトを表示する (-i オプション):

    -i オプションを使用すると、移動先に同じ名前のファイルが存在する場合に上書きするか確認するプロンプトが表示されます。

    mv -i file.txt /path/to/destination/
  • コピー先のファイルを強制的に上書きする (-f オプション):

    -f オプションを使用すると、移動先のファイルを強制的に上書きします。

    mv -f file.txt /path/to/destination/

コメント

コメントする

目次