ファイル
ファイルとディレクトリ
ls・cd・cp・mv・rm・mkdir・ln など、ファイルとディレクトリを扱う基本コマンド。
lsファイルの一覧を表示する
フォルダの中にあるファイルやフォルダの一覧を表示します。
ls [オプション] [パス...]| オプション | 意味 |
|---|---|
-l | 詳細表示(権限・所有者・サイズ・更新日時) |
-a | . で始まる隠しファイルも表示 |
-A | -a から . と .. を除いたもの |
-h | サイズを K・M・G で表示(-l と一緒に使う) |
-t | 更新日時の新しい順 |
-S | サイズの大きい順 |
-r | 並び順を逆にする |
-R | サブディレクトリも再帰的に表示 |
-d | ディレクトリ自体の情報を表示(中身ではなく) |
-1 | 1行に1つずつ |
--color=auto | 種類ごとに色を付ける |
$ 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ディレクトリを移動する
作業するフォルダを移動します。
$ cd /var/log
$ cd # ホームへ(cd ~ と同じ)
$ cd - # 直前にいたディレクトリへ戻る
$ cd .. # 1つ上へ
$ cd ~/project/webpwd今いるディレクトリを表示する
今いるフォルダの場所を表示します。
$ pwd
/home/alice/project
$ pwd -P # シンボリックリンクをたどった実際の場所pushd / popdディレクトリを行き来する
今いる場所を覚えて移動し、あとで元の場所に戻ります。
$ pushd /etc/nginx # 今の場所を覚えて移動
$ popd # 覚えた場所に戻る
$ dirs -v # 覚えている一覧mkdirディレクトリを作る
新しいフォルダを作ります。
$ mkdir photos
$ mkdir -p src/app/components # 途中のディレクトリもまとめて作る(既にあってもエラーにしない)
$ mkdir -m 700 secret # 権限を指定して作る
$ mkdir -p project/{src,docs,test}touch空のファイルを作る / 更新日時を変える
空のファイルを作ります。既にあるファイルなら更新日時を今にします。
$ touch memo.txt # なければ空で作る。あれば更新日時を今にする
$ touch -d "2026-01-01 09:00" a.txt
$ touch -r ref.txt b.txt # ref.txt と同じ日時にするcpコピーする
ファイルやフォルダをコピーします。
cp [オプション] <コピー元> <コピー先>
cp [オプション] <コピー元...> <ディレクトリ>| オプション | 意味 |
|---|---|
-r / -R | ディレクトリごとコピー |
-i | 上書きする前に確認する |
-n | 既にあるファイルは上書きしない |
-u | コピー元の方が新しいときだけコピー |
-p | 権限・所有者・日時を保つ |
-a | -dR --preserve=all。バックアップ向けにまるごと保つ |
-v | コピーしたものを表示 |
-l / -s | コピーの代わりにハードリンク / シンボリックリンクを作る |
$ cp report.pdf ~/backup/
$ cp -r src/ src-backup/
$ cp -av /etc/nginx ~/nginx-backup # 権限や日時ごと保存
$ cp -i *.jpg /mnt/c/Users/alice/Pictures/mv移動する / 名前を変える
ファイルやフォルダを移動したり、名前を変えたりします。
$ 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 | 確認せず、存在しなくてもエラーにしない |
-i | 1つずつ確認する |
-I | 3つ以上消すときや再帰のときだけ1回確認する |
-v | 消したものを表示 |
$ rm memo.txt
$ rm -r build/
$ rm -i *.tmp
$ rm -- -weird-name.txt # - で始まる名前rmdir空のディレクトリを削除する
空のフォルダを削除します。
$ rmdir empty-dir
$ rmdir -p a/b/c # 空になった親もまとめて削除lnリンクを作る
ファイルやフォルダへのリンク(ショートカットのようなもの)を作ります。
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 には最初から入っていません。 で入れられます。
フォルダの構造を木の形で表示します。
$ tree -L 2 # 2階層まで
$ tree -a -I node_modules
$ tree -d # ディレクトリだけinstallコピーと権限設定を一度に行う
ファイルのコピーと権限の設定を一度に行います。
$ install -m 755 mytool ~/.local/bin/ # 実行権限を付けて配置
$ install -d -m 700 ~/.ssh # ディレクトリを権限付きで作るrename名前をまとめて変える(正規表現)
Ubuntu には最初から入っていません。 で入れられます。
正規表現を使って、たくさんのファイルの名前をまとめて変えます。
$ 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 には最初から入っていません。 で入れられます。
ワイルドカードを使って、ファイルの名前をまとめて変えます。
$ mmv '*.jpeg' '#1.jpg'
$ mmv 'IMG_*.JPG' 'photo_#1.jpg'cp / mv のバックアップ機能
$ cp --backup=numbered new.conf app.conf # 既存の app.conf を app.conf.~1~ として残す
$ mv -b new.txt old.txt # 上書きされる方を old.txt~ として残すreadlinkリンク先を表示する
シンボリックリンクがどこを指しているかを表示します。
$ readlink ~/dl # 1段だけたどる
$ readlink -f /usr/bin/python3 # 最後までたどった実体trash-putゴミ箱に入れる(消した後も戻せる)
Ubuntu には最初から入っていません。 で入れられます。
ファイルをゴミ箱に入れます。消したあとでも元に戻せます。
$ trash-put old-notes.txt
$ trash-list
$ trash-restore
$ trash-empty 30 # 30日より前のものを完全に消すrm の代わりに使うと、消しすぎたときに取り戻せます。