LoginSignup
1

posted at

updated at

Linux ディレクトリ・ファイル操作 コマンド一覧

パスの概要について

パスは、ディレクトリやファイルの住所情報みたいなもので、ディレクトリの階層の区切りを「/」で表現しています。

  • 絶対パス
    • ルートディレクトリ 「/」 から始まるパス
    • ..」は親ディレクトリを表す。
  • 相対パス
    • カレントディレクトリから始まるパス
    • .」はカレントディレクトリを表す。

Image from Gyazo

cdコマンド

ディレクトリの移動 語源 : change directory

# 構文
$ cd(オプション)(ディレクトリ名)

ディレクトリの指定

ディレクトリ 意味 指定方法
カレントディレクトリ 現在自分がいるディレクトリ 「 . 」
親ディレクトリ 1つ上の階層のディレクトリ 「 .. 」
ホームディレクトリ 「 /home/ユーザー名 」 ディレクトリ 「 ~ 」、cd
ルートディレクトリ 「 / 」ディレクトリ 「 / 」

pwdコマンド

カレントディレクトリの表示 語源 : print name of working directory

# 構文
pwd(オプション)

# カレントディレクトリが taddy の場合
$ pwd
# 出力結果
$ /home/taddy 

lsコマンド

ファイルやディレクトリの一覧表示 語源 : list

# 構文
$ ls(オプション)(ディレクトリ・ファイル名)

# ルートディレクトリの一覧を表示する場合
$ ls /

# 複数ディレクトリの一覧を表示する場合
$ ls / /home

-lオプション

ファイルの詳細情報を表示

# devディレクトリの一覧表示した場合
$ ls -l
# 出力結果
drwxr-xr-x 2 taddy taddy 6 8月 6 11:57 dev
# d = ファイルタイプ / rwxr-xr-x = ファイルモード / 2 = リンク数 / taddy = 所有者 / taddy = 所有グループ
# 6 = サイズ / 8月 6 11:57 = タイムスタンプ / dev = ファイル名・ディレクトリ名

-aオプション

隠しファイルも含めた全ファイルの表示(.で始まるファイルを隠しファイルと言い、通常は表示されません)

$ ls -a
# 出力結果
. .bash_history .bashrc desktop

-Fオプション

ファイル種別を表示するオプション

$ ls -F
# 出力結果
bin@ dev/ home/ lib64@
# 「 / 」 = ディレクトリ 「 @ 」 = シンボリックリンク 「 * 」 = 実行可能ファイル 記号なし = 通常ファイル

ディレクトリ名の指定がない場合、カレントディレクトリの一覧を表示します。

パス名展開

複数のファイルを一度に指定することができます。

記号 意味
* 任意の文字列
? 任意の1文字
# 拡張子が html のファイルの一覧表示する場合
$ ls *.html

# z から始まり4文字で終わるファイルの表示する場合
$ ls /bin/z???
# 出力結果
  /bin/zcat /bin/zcmp /bin/znew

mkdirコマンド

ディレクトリの作成 語源 : make directory

# 構文
$ mkdir(オプション)(作成するディレクトリ名)

# codeディレクトリを作成する場合
$ mkdir code

# 複数のディレクトリを一度に作成する場合
$ mkdir -p test/2021/11
# -p オプションを付与することで、3つのディレクトリ「test, 2021, 11」を作成

ディレクトリの作成と同時に、作成したディレクトリへ移動
$_・・・直前のコマンド引数を取得

# ホームディレクトリで作成した場合
~ $ mkdir code && cd $_

# 出力結果
code $

複数のディレクトリを作成する場合(ファイルも可)

$ mkdir {ディレクトリ名1,ディレクトリ名2}

カンマの後にスペースを入れるとエラーになるので注意!

touchコマンド

空のファイルを作成 語源:touch

# 構文
$ touch(ファイル名)

# 複数のファイル作成する場合
$ touch foo.html bar.html

rmコマンド

ファイル・ディレクトリの削除 語源:remove

# 構文
$ rm(オプション)(削除するファイル名)

# foo.html と bar.htmlファイルを削除する場合
$ rm foo.html bar.html

# ファイルが格納されているディレクトリを削除する場合
$ rm -rf <ディレクトリ名>

実行すると、ゴミ箱に行くことなく本当に削除されるので使用する際は注意!

-rオプション

ディレクトリも合わせて削除 語源 : reclusion

$ rm -r(ディレクトリ名)

-fオプション

ファイル削除時に警告文を表示させない

$ rm -f(ファイル名)

-iオプション

ファイルの削除前にファイル内を確認できる

$ rm -i(ファイル名)

mvコマンド

ファイルの移動・ファイル名の変更 語源 : move

# 構文
$ mv(オプション)(移動元)(移動先) 

# ファイル名を file から file1 に変更する場合
$ mv file file1

# file1 を code ディレクトリ直下に移動する場合
$ mv file1 code/ 

rmdirコマンド

空ディレクトリの削除 語源 : remove directory

空でないディレクトリを削除するとエラーになるので注意!

# 構文
$ rmdir(ディレクトリ名)

# code ディレクトリを削除する場合
$ rmdir code

manコマンド

コマンドのマニュアルを表示 語源 : manual

help オプションよりも詳しく調べたい時に使用します。

# 構文
$ man(調べたいコマンド名)

# lsコマンドのマニュアルを表示する場合
$ man ls

-kオプション

キーワードから検索することができる

# 「キーワード」がコマンドに含まれている一覧を表示する場合
$ man -k キーワード

catコマンド

ファイルの中身を表示 語源 : concatenate

# 構文
$ cat(オプション)(ファイル名)

# etc ディレクトリ直下の hosts ファイルを表示する場合
$ cat /etc/hosts

# 複数ファイルをまとめて表示する場合
$ cat /etc/hostname /etc/hosts
# 出力結果
local.localdomain        # /etc/hostname の内容
127.0.0.1 localhost ...  # /etc/hosts の内容
::1       localhost6 ... # /etc/hosts の内容

-nオプション

行番号の表示

$ cat -n /etc/hosts
# 出力結果
1 127.0.0.1 localhost ...
2 ::1       localhost6 ...

cpコマンド

ファイル・ディレクトリのコピー 語源 : copy

# ファイルのコピー
$ cp(コピー元)(新規ファイル名)

# ファイルをディレクトリ内にコピー
$ cp(コピー元ファイル名)(コピー先ディレクトリ名)

コピー先のファイルが既に存在すると上書きするので注意!

【 cpコマンドでよく使うオプション 】

# 上書きする前に確認する(コピー元のディレクトリにファイルが存在する場合、ファイルも合わせてコピーされる)
$ cp -i <コピー元ファイル名> <コピー先ファイル名>

#  ディレクトリのコピー(-rオプションを付けないとディレクトリをコピーすることができない)
$ cp -r <コピー元ディレクトリ名> <新規ディレクトリ名>

# 更新日付(ステータス)を保ったまま、ファイルをコピー
$ cp -p <コピー元ファイル名> <コピー先ファイル名>

lnコマンド

リンクを張るコマンド 語源 : link

  • リンクを張るとは

    • ファイルに別名を付けることを「リンクを張る」という
  • ハードリンク

    • 1つのファイルの実体に複数の名前を付ける機能
    • 元のファイルを削除しても消えない
    • 全てのハードリンクがなくなった時に削除される
  • シンボリックリンク

  • リンク先のパス名が書かれた特殊ファイルでリンク先がファイルの実体

  • ファイルの実体を削除、または移動するとファイルを参照できなくなる

  • リンクの使い方

    • 長いパスを省略したいとき
    • 複数バージョンを共存させて最新を区別したいとき
# ハードリンクを張る
$ ln <リンク元ファイル名> <リンク名>

#  シンボリックリンクを張る
$ ln -s <リンク元ファイル名> <リンク名>

findコマンド

ファイルの検索 語源 : find

# 構文
$ find <検索開始ディレクトリ> <検索条件> <アクション>

$ find . -name README.md -print # -print は省略可
# 出力結果
 ./wordpress/ ... /README.md

# ワイルドカードの使用(使用する場合は、「 ` 」もしくは「 " 」 で囲うこと)
$ find . -name '*.html' -print

【 findコマンドでよく使うオプション 】

-name

ファイル名を指定してファイルを検索(ファイル名の大文字小文字を区別)

$ find . -name README.md

-iname

ファイル名を指定してファイルを検索(ファイル名の大文字小文字を区別しない)

$ find . -iname readme.md

-type

ファイル名の種類で検索

# -type f は通常検索
$ find . -type f -print

# -type l はシンボリックリンク
$ find . -type l -print

# -type d はディレクトリ
$ find . -type d -print

-a

複数の条件を指定(-a は省略可)

# images というディレクトリ名のパスを検索する場合
$ find . -type d -a -name images -print

lessコマンド

ファイルの中身をスクロール表示するコマンド 語源 : less - opposite of more

# 構文
$ less(オプション)(ファイル名)

長いファイルの中身を確認したい時に使用します。

コマンド 内容 コマンド 内容
スペースキー, f 一画面下にスクロール /<文字列> 下方向に向かって検索
b 一画面上にスクロール ?<文字列> 上方向に向かって検索
j 一行下にスクロール n 次の検索結果に移動
k 一行上にスクロー N 前の検索結果に移動
q lessコマンドを終了

##参考教材

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1