Ubuntu よく使うコマンドを覚えましょう ディレクトリ編

よく使うコマンドを覚えよう!! ディレクトリ編

 
Ubuntu を快適に使えるようにディレクトリに関する基本的なコマンドの使い方をを覚えましょう。

相対パスと絶対パス

  • 絶対パス
    ルートディレクトリと呼ばれる階層構造の頂点から目的地までの経路。
  • 相対パス
    現在のディレクトリから目的のファイルやフォルダまでの道筋。

 

記号 名前 説明
. カレントディレクトリ 現在のディレクトリ
.. 親ディレクトリ ひとつ上の階層のディレクトリ
~ ホームディレクトリ ログインしたときに最初にいるディレクトリ
/ ルートディレクトリ 一番上のディレクトリ

ファイルを一覧表示するコマンド ls

list segments

ファイルを一覧表示する。指定するファイル名をワイルドカードで指定可能です。

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

オプション 意味
-l 長いフォーマットで表示する。ディレクトリを指定した場合、最初にトータルのブロック数を表示してからディレクトリ内のファイルの情報を表示する
-o 「-l」と同じだが、グループ情報は表示しない
-g 「-l」と同じだが、ファイル所有者を表示しない
-n 「-l」と同じだが、所有者とグループ名の代わりにUIDとGIDを数値で表示する
-G 「-l」と併用したとき、グループ名を表示しない
-h 「-l」と併用したとき、サイズを人が読みやすい形式で表示する(例:1K、234M、2G)
-k 「-l」と併用したとき、サイズを1KB単位(1024バイトの倍数)で表示する
-c 「-l」と併用したとき、更新日の代わりに「ctime」(ファイルの属性など変更した時刻)を表示する
-u 「-l」と併用したとき、更新日の代わりに最終アクセス日を表示する
-p ディレクトリの場合のみ「/」を付けて表示する
-F 名前の後にタイプ識別子(*/=>@|のいずれか)を付けて出力する
ディレクトリならば「/」。シンボリックリンクなら「@」。実行可能ファイルなら「*」が付きます。
-i 各ファイルの前にファイルの「iノード番号」(ファイルを管理するのに使われている数値)を表示する
-s 各ファイルの前にファイルのブロック数を表示する
-Z 各ファイルのSELinuxセキュリティコンテキストを表示する
-C リストを常に複数の列で出力する(リダイレクトやパイプで画面以外に出力した場合も画面表示と同じように複数の列で出力する
-1 リストを常に1件1行で表示する
-m ファイル名のリストをカンマで区切って表示する
-x 複数列の表示でファイル名を列方向ではなく行方向(縦方向)に並べる
-T 数 タブ幅を8の代わりに指定した文字数にする
-w 数 スクリーン幅を指定した文字数にする
-Q ファイル名をダブルクオート(”)で囲む
-N 生の要素名を表示する(制御文字などを特別扱いしない)
-q 表示不可能な文字を「?」に置き換える
-t ファイルの更新日が新しい順に表示する(「-lc」が併せて指定されている場合は「ctime」順、「-lu」が併せて指定されている場合は最終アクセス日順で表示)
-S ファイルサイズの大きい順に並べる
-v 自然な数字(version)順でソートする
-X 拡張子のアルファベット順にソートする
-r 並び順を反転させる
-U ファイルを並べ替えず、ディレクトリに含まれている要素順で表示する
-f ファイルを並べ替えず、ディレクトリ情報のままで表示する
-a ドットファイルも表示する
-A ドットファイルも表示する、ただし「.」と「..」を除く
-B 「~」で終了する要素を一覧表示しない
-d ディレクトリの内容ではなく、ディレクトリそのものの情報を表示する(シンボリックリンクもたどらない)
-H コマンドラインで指定したファイルやディレクトリがシンボリックリンクの場合は、リンク先の情報で表示(「-F」「-d」「-l」と一緒に使う。
-L ディレクトリ内のファイルも含めて、全てをシンボリックリンクのリンク先の情報で表示する
-R ディレクトリを指定した場合、再帰的に表示する

オプションが多数ありますが、普段使うオプションはある程度限られているので全てを覚える必要はありません。

$ man ls

で、いつても全てのオプションを見ることができます。

作業ディレクトリを移動するコマンド cd

change directory

現在の作業ディレクトを移動するコマンドです

$ cd [オプション] [ディレクトリ]

オプション 意味
-P 指定したディレクトリがシンボリックリンクの場合、シンボリックリンクのターゲットに移動します。
-L 指定したディレクトリがシンボリックリンクの場合、シンボリックリンクに移動します。

カレントディレクトリを表示するコマンド pwd

print working directory

今いる場所のディレクトリのことをカレントディレクトリといいます。
現在のカレントディレクトリを表示します

$ pwd

ディレクトリやファイルへのリンクを登録するコマンド ln

ファイルのリンクを作成するためのコマンドです

$ ln [-s] ファイル名 リンク名

UNIX/Linuxのファイルはiノードで管理されています。
iノードには、ファイルの属性(種類やモード(i_mode)、所有者(i_uid)、 サイズ(i_size)、各種日時(i_atime, i_ctime, …)など)と、 ファイルの中身の情報(i_block)が格納されています。

  • ハードリンク
    すでにあるファイルを、 別のファイル名(パス名)で参照できるようにするモノです。
     フォルダのリンクが作成できない
     ファイル自体にリンク数という属性が付随する
     リンク数が2つ以上のファイルは、どちらかを削除しても、リンク数が減るだけでデータはリンク数0にならない限り削除されない
  • シンボリックリンク
    ハードリンクとは違い、元のファイルをiノードではなくパスで指定するため、 別のファイルシステムのファイルを参照できます。
     フォルダのリンクが作成できる。
     元ファイルを消すとシンボリックリンクは残るが参照するデータが消えます。
オプション 意味
-s ハードリンクの代わりにシンボリックリンクを作成する
-d,-F ディレクトリのハードリンクを作成する(スーパーユーザーのみ)
-f リンクファイルと同じ名前のファイルがあっても強制的に上書きする
-i 上書き前に確認する
-n リンクの作成場所として指定したディレクトリがシンボリックリンクだった場合、参照先にリンクを作るのではなく、シンボリックリンクそのものを置き換える(-fと組み合わせて使用)
-L 対象がシンボリックリンクの場合リンクを巡る
-P シンボリックリンク自体へのハードリンクを作成する
-r 相対パスのシンボリックリンクを作成する
-T リンク先を常に通常ファイルとして扱う
-t Dir 指定したディレクトリにリンクを作成する(DIR部分はディレクトリ名)
-b 上書きされるファイルのバックアップを作成する
[方法]:「numbered」または「t」の場合は番号の添え字、「simple」または「never」の場合はファイル名の末尾に「~」または「-S」オプションか環境変数で指定した文字を付けるシンプルなバックアップ(-bと同じ)、「existing」または「nil」の場合は既にあるファイルに従う(ない場合はsimpleと同じ)
-S 接尾辞 バックアップファイルを作る際のファイル名末尾に付ける文字(無指定時は「~」1文字、または環境変数「SIMPLE_BACKUP_SUFFIX」に従う
-v 経過を表示する

$ man ln | col -bfx > ln.txt

パイプで繋いだ colコマンドは入力中にある逆改行コードを処理するフィルタです
colコマンドでエスケープシーケンスを取り除き、プレインテキストに整形できるようになります。

lnコマンドのマニュアルページを表示したものを下に示します。

LN(1) ユーザーコマンド LN(1)


ln – ファイル間のリンクを作成する


ln [OPTION]… [-T] TARGET LINK_NAME (1番目の形式)
ln [OPTION]… TARGET (2番目の形式)
ln [OPTION]… TARGET… DIRECTORY (3番目の形式)
ln [OPTION]… -t DIRECTORY TARGET… (4番目の形式)


1 番目の書式では TARGET に対する LINK_NAME という名前のリンクを作成します。 2 番目の書式では TARGET に対するリンクを
現在のディレクトリに作成します。 3 番目と 4 番目の書式では、各 TARGET に対するリンクを DIRECTORY に作成します。 デ
フォルトではハードリンクが作成されます。 –symbolic を使用すると、シンボリックリンクが作成されます。 デフォルトで
は、作成先 (新しいリンクの名前) がすでに存在していてはいけません。 ハードリンクを作成する場合は TARGET が存在しなけれ
ばいけません。 シンボリックリンクは任意のテキストを保持することができます。 後でシンボリックリンクを辿る際には、相対
的なリンクは親ディレクトリに対する ものとして解釈されます。

長いオプションで必須となっている引数は短いオプションでも必須です。

–backup[=CONTROL]
対象ファイルが存在する時にバックアップを作成する

-b –backup と同様だが引数を取らない

-d, -F, –directory
スーパーユーザがディレクトリに対するハードリンク を作成することを許可する。(備考: スーパーユーザ であってもシ
ステムの制限で失敗することがある)

-f, –force
対象ファイルが存在する時に削除する

-i, –interactive
対象を削除するかどうか確認メッセージを表示する

-L, –logical
TARGET がシンボリックリンクの場合リンクを辿る

-n, –no-dereference
対象がディレクトリに対するシンボリックリンクの場合 通常ファイルに対するリンクとして扱う

-P, –physical
シンボリックリンク自体へのハードリンクを作成する

-r, –relative
リンクの場所からの相対パスのシンボリックリンクを作成する

-s, –symbolic
ハードリンクではなくシンボリックリンクを作成する

-S, –suffix=SUFFIX
バックアップ接尾辞を SUFFIX にする

-t, –target-directory=DIRECTORY
リンクを作成する DIRECTORY を指定する

-T, –no-target-directory
常に LINK_NAME を通常ファイルとして扱う

-v, –verbose
リンクを作成した時にファイル名を表示する

–help この使い方を表示して終了する

–version
バージョン情報を表示して終了する

–suffix も環境変数 SIMPLE_BACKUP_SUFFIX も設定されていない場合、 バックアップ接尾辞は ‘~’ になります。 バージョン管
理方法は –backup オプションや VERSION_CONTROL 環境変数で 選択できます。以下の値を指定できます:

none, off
バックアップを作成しない (–backup を付けた時でも)

numbered, t
番号付きバックアップを作成する

existing, nil
番号付きバックアップがあれば番号付き、

そうでなければ、simple で作成する

simple, never
常に簡易バックアップを作成

-s を使用した時は -L および -P は無視されます。それ以外の場合、TAREGT が シンボリックリンクの場合は最後に指定したオプ
ションが効果を持ちます。 デフォルトは -P です。

GNU coreutils のオンラインヘルプ: ln の翻訳に関するバグは
に連絡してください。 完全な文書は
にあります。 ローカルでは info ‘(coreutils) ln invocation’ で参照できま
す。


作者 Mike Parker および David MacKenzie。


Copyright © 2016 Free Software Foundation, Inc. ライセンス GPLv3+: GNU GPL version 3 or later
.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by
law.


link(2), symlink(2)

ln の完全なマニュアルは Texinfo マニュアルとして整備されている。もし、 info および ln のプログラムが正しくインストー
ルされているならば、コマンド

info ln

を使用すると完全なマニュアルを読むことができるはずだ。

GNU coreutils 2016年2月 LN(1)

ディレクトリを作成するコマンド mkdir

make directory
ディレクトリを作成します

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

オプション 意味
-m 作成するディレクトリのパーミッションを設定する
-p 必要に応じて親ディレクトリも作成する
-v 経過を表示する

空のディレクトリを削除するコマンド rmdir

空のディレクトリを削除します
rmdirコマンドは空のディレクトリ(フォルダ)しか削除できません。

$ rmdir [オプション] ディレクトリ名

オプション 意味
-p 必要に応じて親ディレクトリも削除する
-v 経過を表示する

カレントディレクトリを変更するコマンド pushdpopd

  • ディレクトリスタックと呼ぶ記憶領域を利用して、カレントディレクトリを変更・表示することができます。
  • pushd
    カレント・ディレクトリをスタックに保存して移動するコマンドです。
    ディレクトリスタックには複数のパス(ディレクトリ)を格納できます。
  • popd
    ディレクトリスタックからディレクトリを取り出すコマンドです。
    カレントディレクトリを最後に保存した場所に変更し、ディレクトリスタックから登録を削除します。

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

$ pushd [オプション][ディレクトリ]

オプション 意味
-p 必要に応じて親ディレクトリも削除する
-v 経過を表示する

$ popd ディレクトリ

オプション 意味
-p 必要に応じて親ディレクトリも削除する
-v 経過を表示する

記録されているディレクトリ履歴の一覧を表示するコマンド dirs

記録されているディレクトリ履歴の一覧を表示する

$ dirs [オプション]

オプション 意味
-p 必要に応じて親ディレクトリも削除する
-v 経過を表示する

今日、覚えたいUNIX/Linuxのディレクトリに関連する基本コマンド

  • ls
  • cd
  • pwd
  • ln
  • mkdir
  • rmdir
  • pushdとpopd
  • dirs