Linuxコマンドでディレクトリやファイルを操作する方法(ls, cp, mv, rm, mkdir, touch)

Linuxコマンドでディレクトリやファイルを操作する方法(ls, cp, mv, rm, mkdir, touch)

Linux環境で、ファイルやディレクトリを操作する基本的なコマンドと使用例まとめました。

動作環境

この記事は、以下の環境で実行した結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。

# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

ディレクトリの内容を表示する

ファイルやディレクトリの内容を表示するときは「ls」コマンドを利用します。

書式とオプション

書式

ls [オプション] [ファイルまたはディレクトリ]

主なオプション

オプション説明
-l詳細な情報を表示します。
-aドットファイルも含めて表示します。
-Rサブディレクトリの内容も含めて表示します。

使用例

ディレクトリdirectoryAの内容を表示するには、以下のように実行します。(ディレクトリを指定しないと、カレントディレクトリの内容が表示されます。)

# ls directoryA

名前が「a」から始まるファイルやディレクトリだけを表示するには、、以下のように実行します。

# ls a*

ディレクトリdirectoryA内のファイルやディレクトリ詳細情報(アクセス権や所有者、ファイルサイズなどの情報)を表示するには、以下のように実行します。

# ls -l directoryA

ディレクトリdirectoryA内のドットファイル(隠しファイル)を含めて表示するには、以下のように実行します。

# ls -a directoryA

ディレクトリdirectoryA内のサブディレクトリの内容を含めて表示するには、以下のように実行します。

# ls -R directoryA

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

ファイルやディレクトリをコピーするときは「cp」コマンドを利用します。

書式とオプション

書式

cp [オプション]... コピー元ファイルorディレクトリ コピー先ファイルorディレクトリ

主なオプション

オプション説明
-fコピー先にある同名ファイルを上書きします。
-iコピー先にある同名ファイルを上書くか確認します。
-pファイル属性(所有者・アクセス権・最終更新時刻など)
を保ったままコピーします。
-rディレクトリ内を再帰的にコピーします。

使用例

sampleA.txtを、sampleB.txtにコピーするには、以下のように実行します。

# cp sampleA.txt sampleB.txt

sampleA.txtを、ディレクトリ/home/hoge内にコピーするには、以下のように実行します。

# cp sampleA.txt /home/hoge

sampleA.txtとsampleB.txtの2ファイルを、ディレクトリ/home/hoge内にコピーするには、以下のように実行します。

# cp sampleA.txt sampleB.txt /home/hoge

「file」から始まるすべてのファイルを、/home/hogeにコピーするには、以下のように実行します。

# cp file* /home/hoge

ディレクトリdirectoryAを、ディレクトリ内の内容を含めてディレクトリdirectoryBにコピーするには、以下のように実行します。

# cp -r /home/hoge/directoryA /home/hoge/directoryB

ファイルやディレクトリを移動する

ファイルやディレクトリを指定した場所に移動したいときは「mv」コマンドを利用します。

書式とオプション

書式

mv [オプション]... 移動元ファイルorディレクトリ 移動先ファイルorディレクトリ

主なオプション

オプション説明
-f移動先にある同名ファイルを上書きします。
-i移動先にある同名ファイルを上書くか確認します。
-u移動元ファイルの方が新しい場合のみ上書きします。

使用例

sample.txtを、ユーザーのホームディレクトリに移動するには、以下のように実行します。

# mv sample.txt ~

また、mvコマンドはファイル名を変更するときにも利用できます。

たとえば、before.txtのファイル名を、after.txtに変更するには、以下のように実行します。

# mv before.txt after.txt

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

ファイルやディレクトリを削除するときは「rm」コマンドを利用します。

書式とオプション

書式

rm [オプション]... ファイル/ディレクトリ

主なオプション

オプション説明
-fユーザーへの確認なしに削除します。
-i削除前に、ユーザーへ確認します。
-rディレクトリ内のファイルを含めて、ディレクトリを削除します。

使用例

カレントディレクトリ内で拡張子がtxtのファイルを削除するには、以下のように実行します。

# rm *.txt

sampleディレクトリを、ディレクトリ内のファイルごと削除するには、以下のように実行します。

# rm -r /tmp/sample

file1.txtとfile2.txtの2つのファイルを削除するには、以下のように実行します。

# rm file1.txt file2.txt

ディレクトリを作成する

ディレクトリを作成するときは「mkdir」コマンドを利用します。

書式とオプション

書式

mkdir [オプション]... ディレクトリ名

主なオプション

オプション説明
-m アクセス権を指定して、ディレクトリを作成します。
-p 親ディレクトリも同時に作成します。

使用例

アクセス権が755のディレクトリ「mydirectory」を作成するには、以下のように実行します。

# mkdir -m 755 mydirectory

ディレクトリ「third」を、親ディレクトリ「top/second/」も含めて一気に作成するには、以下のように実行します。

# mkdir -p top/second/third

ファイルのタイムスタンプを変更する

ファイルのタイムスタンプを変更するときは「touch」コマンドを利用します。

書式とオプション

書式

touch [オプション] ファイル1 ファイル2 ...

主なオプション

オプション説明
-t[[CC]YY]MMDDhhmm[.ss]形式で指定した日時に変更します。
-a最終アクセス日時のみを変更します。
-m最終更新日時のみを変更します。

使用例

ファイルfile1.txtのタイムスタンプを現在の日時に変更したいときは、以下のように実行します。

# touch file1.txt

ファイルfile1.txtの最終アクセス日時を現在の日時に変更したいときは、以下のように実行します。

# touch -a file1.txt

ファイルfile1.txtの最終更新日時を現在の日時に変更したいときは、以下のように実行します。

# touch -m file1.txt

ファイルfile1.txtのタイムスタンプを5月10日2:15に変更したいときは、以下のように実行します。

# touch -t 05100215 file1.txt

ファイルfile1.txtのタイムスタンプを2021年11月10日12:15に変更したいときは、以下のように実行します。

# touch -t 2111101215 file1.txt

ちなみに、存在しないファイルを指定すると、空のファイルが作成されます。

あとがき

コマンドよるファイル操作方法をマスターしておけば、作業効率は格段にアップすると思います。これはWindows環境でも同じですね。