/Linuxコマンド

ファイル

ファイルとディレクトリ

ls・cd・cp・mv・rm・mkdir・ln など、ファイルとディレクトリを扱う基本コマンド。

lsファイルの一覧を表示する

フォルダの中にあるファイルやフォルダの一覧を表示します。

bash
ls [オプション] [パス...]
オプション意味
-l詳細表示(権限・所有者・サイズ・更新日時)
-a. で始まる隠しファイルも表示
-A-a から . と .. を除いたもの
-hサイズを K・M・G で表示(-l と一緒に使う)
-t更新日時の新しい順
-Sサイズの大きい順
-r並び順を逆にする
-Rサブディレクトリも再帰的に表示
-dディレクトリ自体の情報を表示(中身ではなく)
-11行に1つずつ
--color=auto種類ごとに色を付ける
bash
$ ls -lah                  # 隠しファイルも含めて詳しく
$ ls -lt | head            # 最近更新したもの10件
$ ls -lS ~/Downloads       # 大きい順
$ ls -d */                 # ディレクトリだけ

ls -l の読み方:

出力
-rw-r--r-- 1 alice alice 4.2K Sep 25 09:10 notes.md
部分例意味
1文字目-種類(- ファイル、d ディレクトリ、l シンボリックリンク)
2〜10文字目rw-r--r--所有者・グループ・その他の権限(→ パーミッション)
数字1ハードリンクの数
所有者 / グループalice alice持ち主のユーザーとグループ
サイズ4.2K-h を付けると単位付き
日時Sep 25 09:10最終更新日時

cdディレクトリを移動する

作業するフォルダを移動します。

bash
$ cd /var/log
$ cd              # ホームへ(cd ~ と同じ)
$ cd -            # 直前にいたディレクトリへ戻る
$ cd ..           # 1つ上へ
$ cd ~/project/web

pwd今いるディレクトリを表示する

今いるフォルダの場所を表示します。

bash
$ pwd
/home/alice/project
$ pwd -P          # シンボリックリンクをたどった実際の場所

pushd / popdディレクトリを行き来する

今いる場所を覚えて移動し、あとで元の場所に戻ります。

bash
$ pushd /etc/nginx   # 今の場所を覚えて移動
$ popd               # 覚えた場所に戻る
$ dirs -v            # 覚えている一覧

mkdirディレクトリを作る

新しいフォルダを作ります。

bash
$ mkdir photos
$ mkdir -p src/app/components    # 途中のディレクトリもまとめて作る(既にあってもエラーにしない)
$ mkdir -m 700 secret            # 権限を指定して作る
$ mkdir -p project/{src,docs,test}

touch空のファイルを作る / 更新日時を変える

空のファイルを作ります。既にあるファイルなら更新日時を今にします。

bash
$ touch memo.txt                  # なければ空で作る。あれば更新日時を今にする
$ touch -d "2026-01-01 09:00" a.txt
$ touch -r ref.txt b.txt          # ref.txt と同じ日時にする

cpコピーする

ファイルやフォルダをコピーします。

bash
cp [オプション] <コピー元> <コピー先>
cp [オプション] <コピー元...> <ディレクトリ>
オプション意味
-r / -Rディレクトリごとコピー
-i上書きする前に確認する
-n既にあるファイルは上書きしない
-uコピー元の方が新しいときだけコピー
-p権限・所有者・日時を保つ
-a-dR --preserve=all。バックアップ向けにまるごと保つ
-vコピーしたものを表示
-l / -sコピーの代わりにハードリンク / シンボリックリンクを作る
bash
$ cp report.pdf ~/backup/
$ cp -r src/ src-backup/
$ cp -av /etc/nginx ~/nginx-backup     # 権限や日時ごと保存
$ cp -i *.jpg /mnt/c/Users/alice/Pictures/

mv移動する / 名前を変える

ファイルやフォルダを移動したり、名前を変えたりします。

bash
$ mv old.txt new.txt           # 名前を変える
$ mv *.log logs/               # ディレクトリへ移動
$ mv -i a.txt b.txt            # 上書きする前に確認
$ mv -n a.txt dir/             # 上書きしない
$ mv -v dir1 dir2              # ディレクトリの名前も同じく mv で変える

rm削除する

ファイルやフォルダを削除します。ゴミ箱には入らないので注意してください。

オプション意味
-rディレクトリを中身ごと削除
-f確認せず、存在しなくてもエラーにしない
-i1つずつ確認する
-I3つ以上消すときや再帰のときだけ1回確認する
-v消したものを表示
bash
$ rm memo.txt
$ rm -r build/
$ rm -i *.tmp
$ rm -- -weird-name.txt        # - で始まる名前

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

空のフォルダを削除します。

bash
$ rmdir empty-dir
$ rmdir -p a/b/c     # 空になった親もまとめて削除

lnリンクを作る

ファイルやフォルダへのリンク(ショートカットのようなもの)を作ります。

bash
ln -s <リンク先> <リンク名>
$ ln -s /mnt/c/Users/alice/Downloads ~/dl      # シンボリックリンク
$ ln -sf new-target current                     # 既存のリンクを張り替える
$ ln original.txt hardlink.txt                  # ハードリンク
$ readlink -f ~/dl                              # リンクの実体をたどる
種類特徴
シンボリックリンク(-s)パスを指す「ショートカット」。ディレクトリにも別のディスクにも張れる。元を消すと切れる
ハードリンク同じ中身に別の名前を付ける。どちらを消してももう片方は残る。同じファイルシステム内のファイルだけ

treeディレクトリ構造を木の形で表示する

Ubuntu には最初から入っていません。 で入れられます。

フォルダの構造を木の形で表示します。

bash
$ tree -L 2            # 2階層まで
$ tree -a -I node_modules
$ tree -d              # ディレクトリだけ

installコピーと権限設定を一度に行う

ファイルのコピーと権限の設定を一度に行います。

bash
$ install -m 755 mytool ~/.local/bin/          # 実行権限を付けて配置
$ install -d -m 700 ~/.ssh                     # ディレクトリを権限付きで作る

rename名前をまとめて変える(正規表現)

Ubuntu には最初から入っていません。 で入れられます。

正規表現を使って、たくさんのファイルの名前をまとめて変えます。

bash
$ rename -n 's/\.jpeg$/.jpg/' *.jpeg        # -n で確認だけ(実際には変えない)
$ rename 's/\.jpeg$/.jpg/' *.jpeg
$ rename 's/ /_/g' *                        # 空白を _ に
$ rename 'y/A-Z/a-z/' *                     # 小文字に
$ rename 's/^/2026_/' *.pdf                 # 先頭に付ける

入っていなければ、シェルのループでも同じことができます(→ ワンライナー集)。

mmvワイルドカードで名前をまとめて変える

Ubuntu には最初から入っていません。 で入れられます。

ワイルドカードを使って、ファイルの名前をまとめて変えます。

bash
$ mmv '*.jpeg' '#1.jpg'
$ mmv 'IMG_*.JPG' 'photo_#1.jpg'

cp / mv のバックアップ機能

bash
$ cp --backup=numbered new.conf app.conf     # 既存の app.conf を app.conf.~1~ として残す
$ mv -b new.txt old.txt                      # 上書きされる方を old.txt~ として残す

シンボリックリンクがどこを指しているかを表示します。

bash
$ readlink ~/dl                  # 1段だけたどる
$ readlink -f /usr/bin/python3   # 最後までたどった実体

trash-putゴミ箱に入れる(消した後も戻せる)

Ubuntu には最初から入っていません。 で入れられます。

ファイルをゴミ箱に入れます。消したあとでも元に戻せます。

bash
$ trash-put old-notes.txt
$ trash-list
$ trash-restore
$ trash-empty 30                 # 30日より前のものを完全に消す

rm の代わりに使うと、消しすぎたときに取り戻せます。