Linuxコマンドの基本|ls・cd・cp・mvの実務での使い方
Linuxで最初に覚えるなら、ls・cd・cp・mvは外せません。ファイルを確認する、移動する、コピーする、名前を変えるという日常作業の中心にあるからです。
実務では「コマンドを知っている」だけでは足りません。どこで実行しているかを見失わないこと、上書きや意図しない移動を避けること、ディレクトリごと扱うときの挙動を理解すること。この3点で事故の多くを防げます。
ls: 今いる場所に何があるかを確認するcd: 作業場所を移動するcp: ファイルやディレクトリをコピーするmv: 移動とリネームを行う- 実務では、操作前に
pwdとlsで確認する癖が効きます
ここがポイント: 4つを別々に覚えるより、
lsで確認してcdで移動し、cpとmvは上書き事故を避けながら使う、という流れで覚えると実務で使いやすくなります。
対象環境と前提
この記事は、主に GNU Coreutils を使う Linux 環境を前提にしています。Ubuntuなどの一般的なLinuxディストリビューションなら、ほぼこの前提で読めます。
cd は Bash などのシェル組み込みコマンドで、ls・cp・mv は GNU Coreutils のコマンドです。そのため、macOSやBSD系ではオプションや細かい挙動が一部異なることがあります。
- 想定環境: Linux、Bash 5系、GNU Coreutils 9系
- 注意: macOS標準の
lsやcpは GNU 版と同じではない場合がある - スクリプト化するなら、本番環境のOSとコマンド仕様を先に確認する
まず覚えたい基本の流れ
実務で多いのは、次のような流れです。これだけでも日常作業のかなりの部分をカバーできます。
lsでファイルやディレクトリを確認するcdで目的の場所に移動するcpでバックアップや複製を作るmvで整理やリネームをする
たとえば、ログを退避して名前を整えるなら次のように進めます。
ls
cd logs
cp app.log app.log.bak
mv app.log app-2026-04-22.log
この順番にしておくと、いきなり移動や上書きをしてしまう失敗が減ります。
ls の使い方
ls は、いまの場所にあるファイルやディレクトリを一覧表示するコマンドです。操作前の確認に使うのが基本です。
最小限これだけで使える
ls
ls -l
ls -a
ls -la
ls: 一覧だけを見るls -l: 権限、所有者、サイズ、更新日時まで確認するls -a: ドットで始まる隠しファイルも表示するls -la: 詳細表示と隠しファイル表示をまとめて行う
実務での使いどころ
- 設定ファイルがあるか確認したいとき
- コピーや移動の前に対象名を見直したいとき
- パーミッションや更新日時も一緒に見たいとき
たとえば、設定ファイルや .env のような隠しファイルを見落としやすい場面では、ls -a が役立ちます。
出力例
$ ls -la
-rw-r--r-- 1 user user 120 Apr 22 10:00 .env
-rw-r--r-- 1 user user 2048 Apr 22 10:05 app.log
drwxr-xr-x 2 user user 4096 Apr 22 10:10 backup
この出力から、ファイルの有無だけでなく、隠しファイル、サイズ、更新日時、ディレクトリかどうかまで判断できます。
cd の使い方
cd は作業ディレクトリを変更するコマンドです。見た目は単純ですが、どこで操作しているかを誤ると、その後の cp や mv も全部ずれます。
よく使うパターン
cd /var/log
cd ..
cd ~
cd -
cd /var/log: 絶対パスで移動するcd ..: 1つ上のディレクトリへ戻るcd ~: ホームディレクトリへ移動するcd -: 直前のディレクトリへ戻る
実務で便利な考え方
- 長いパスでは、相対パスより絶対パスのほうが事故を減らしやすい
- 行ったり来たりする作業では
cd -が速い cdの直後にpwdやlsを入れると、場所の取り違えに気づきやすい
ありがちな失敗
cdしたつもりで失敗していた- 相対パスの基準を勘違いしていた
- シンボリックリンク配下で
..の移動感覚がずれていた
cd は Bash の組み込みコマンドで、論理パスと物理パスの扱いが変わることがあります。複雑なディレクトリ構成では、pwd で現在地を確認しながら進めるほうが安全です。
cp の使い方
cp はコピー用のコマンドです。本番ファイルを直接編集する前に複製を作るという意味でも、実務では出番が多いコマンドです。
基本形
cp source.txt dest.txt
cp report.csv backup/
cp -r images/ images_bak/
- 1つ目はファイルを別名でコピー
- 2つ目はファイルをディレクトリへコピー
- 3つ目はディレクトリごと再帰的にコピー
実務でよく使う例
編集前のバックアップを作る
cp config.yaml config.yaml.bak
設定ファイルを変更する前に1行で退避できます。小さい作業でも、この一手間で復旧が楽になります。
ディレクトリごと複製する
cp -r templates/ templates_test/
検証用の作業ディレクトリを作る場面で便利です。cp はデフォルトではディレクトリをコピーしないため、ディレクトリ対象なら -r か -R を意識してください。
上書きを避けたいとき
cp -i report.csv backup/report.csv
-i を付けると、既存ファイルを上書きする前に確認が入ります。手作業での運用では有効です。
注意点
- ディレクトリをコピーするときは
-rまたは-Rが必要 - 上書きの有無を事前に確認しないと、古いバックアップを潰しやすい
- GNU版では
-uで新しいものだけ更新できる - クロスプラットフォームのスクリプトでは、オプション差に注意する
mv の使い方
mv は移動とリネームを兼ねるコマンドです。ファイル整理では便利ですが、コピーではなく元が消える前提で扱う必要があります。
基本形
mv old.txt new.txt
mv report.csv archive/
old.txtをnew.txtに変えるときはリネームarchive/に送るときは移動
実務での代表例
日付付きでログを退避する
mv app.log archive/app-2026-04-22.log
ログローテーションを手動で行うときの基本形です。ファイル名を整えるだけで、後から見返しやすくなります。
作業完了後にフォルダを整理する
mv done.csv processed/
処理済みファイルを別ディレクトリへ移すと、未処理データとの混在を防げます。
cp との違い
cp: 元を残して複製するmv: 元の場所から移す、または名前を変える- 迷ったら、まず
cpで退避を作ってからmvを使うほうが安全
GNU Coreutils では、同一ファイルシステム内の mv は通常リネームとして動きます。一方、異なるファイルシステム間ではコピー後に元を削除する動きになるため、大きなディレクトリ移動では時間も失敗時の影響も増えます。
4コマンドを組み合わせる実務例
ここでは、納品前にファイルを整理する簡単な流れを例にします。
例1: 作業ディレクトリの確認からバックアップまで
cd ~/project
ls -la
cp data.csv data.csv.bak
mv data.csv input.csv
ls -la
この流れでできることは次の通りです。
- 作業場所を
~/projectに固定する - 対象ファイルが本当にあるか確認する
- 編集前バックアップを残す
- 処理しやすい名前に変更する
- 最後に状態を見直す
例2: ディレクトリごと検証環境を作る
cd ~/webapp
ls
cp -r templates templates_staging
mv templates_staging templates_review
検証用の複製を作ってから名前を整理するだけでも、本番ディレクトリを直接触るより安全です。
よくある失敗と対処
短いコマンドほど、打ち間違いや確認不足で事故が起きます。初心者がつまずきやすい点は、先に押さえておくほうが効率的です。
1. 今いる場所を確認せずに操作する
対処は単純です。操作前に次を挟みます。
pwd
ls
ファイルが見えていても、想定ディレクトリとは限りません。特に root 権限や本番サーバーでは、この確認が重要です。
2. ディレクトリなのに cp でコピーできない
cp project backup_project
これでは、ディレクトリはそのままコピーできません。再帰コピーが必要です。
cp -r project backup_project
3. mv をコピー感覚で使ってしまう
mv は元ファイルを残しません。バックアップ目的なら cp を選ぶべきです。
- 残したい:
cp - 移したい:
mv - 迷う: 先に
cpで退避
4. 上書きに気づかない
特に同名ファイルが多いディレクトリでは起こりがちです。
- 手作業なら
cp -iやmv -iを検討する - 重要ファイルは日付付きファイル名にする
- 操作前に
ls -lで既存ファイルを確認する
代替手段と使い分け
4つだけでも十分使えますが、状況によっては補助コマンドも便利です。
pwd
現在地を文字で確認したいときに使います。cd とセットで覚えると作業ミスを減らせます。
find
ファイル数が多く、ls だけでは探しにくいときに向いています。名前や更新日時で対象を絞りたいときに便利です。
rsync
大量コピーや同期では cp より向く場面があります。差分転送や属性保持が必要なバックアップ運用では、rsync のほうが扱いやすいことがあります。
まずはこの形で覚える
全部のオプションを暗記する必要はありません。最初は次だけで十分です。
- 確認:
ls -la - 移動:
cd /path/to/dir - バックアップ:
cp file file.bak - ディレクトリ複製:
cp -r dir dir_bak - リネーム:
mv old new - 整理:
mv file archive/
この6パターンを手元で試せれば、ファイル操作の基礎はかなり固まります。次に見るべきなのは、pwd を含めた確認手順と、cp -r や mv を使う前の上書き防止です。ここを雑にすると、短いコマンドでも実務ではすぐ事故になります。
