順番に読み進めながら学べます

ファイル操作 — cp / mv / rm

cpでファイルを複製、mvで移動と名前変更、rmでファイル削除、rmdirとrm -rでディレクトリ削除する違いと主なオプションを、ブラウザ端末で操作しながら学べます。

コピー — cp

cpはファイルを複製するコマンドです。

cp コピー元 コピー先と書くと、元のファイルはそのまま残り、コピー先が新しく作られます。

ディレクトリごと複製したいときは-r、上書きを防ぎたいときは-iを付けます。

書き方意味
cp 元 先ファイルを複製する(元は残る)
cp -r 元 先ディレクトリを中身ごと複製する
cp -i 元 先コピー先が既にあるとき上書き前に確認する
cp の動き
cp a.txt b.txta.txt と b.txt の両方が残るcp a.txt sub/sub/ に複製(元も残る)cp -r dir copyディレクトリごと複製
cpは元を残して複製します。ディレクトリごと複製するときは-rを付けます。
echo 'report' > report.txt   # 素材を作成
cp report.txt backup.txt     # ファイルを複製(元は残る)
mkdir docs                   # ディレクトリを用意
cp -r docs docs_copy         # ディレクトリごと複製

echo 'hello' > a.txtで素材ファイルを作成してください。

cpa.txtb.txtに複製してください。

mkdir boxでディレクトリを作り、cp -rboxbox_copyにディレクトリごと複製してください。

lsb.txtbox_copyの両方ができたことを確認してください。(正しく実行できれば解説が表示されます)

Linux console
0 / 5 実行済み
Loading Linux Terminal...

移動と名前変更 — mv

mv移動名前変更を兼ねるコマンドです。

mv ファイル ディレクトリ/なら移動mv 旧名 新名なら同じ場所での改名になります。

既存の名前へ移動すると確認なしで上書きするため、上書きを防ぎたいときは-iを付けます。

書き方意味
mv ファイル ディレクトリ/ファイルを移動する(元は消える)
mv 旧名 新名同じ場所で名前を変える
mv -i 元 先上書きになるとき確認する
mv -f 元 先確認なしで強制的に上書きする
mv の動き
mv a.txt sub/a.txt が sub/ へ移動(元は消える)mv a.txt new.txt同じ場所で名前が変わる(改名)mv -i a.txt b.txt上書き前に y/n で確認
mvは移動または改名で、元の名前は残りません。-iを付けると上書き前に確認できます。
echo 'draft' > draft.txt    # 素材を作成
mv draft.txt final.txt      # 改名(draft.txt は消える)
echo 'old' > final.txt      # 上書き先を用意
mv -i draft.txt final.txt   # 既存なので y/n を確認

echo 'data' > old.txtで素材ファイルを作成してください。

mvold.txtnew.txtに名前変更してください。

echo 'memo' > note.txtでもう 1 つファイルを作ってください。

mv -i note.txt new.txtを実行してください(new.txtが既にあるので上書き確認が出ます。yを入力して進めてください)。

lsnote.txtが消えnew.txtだけが残ることを確認してください。

Linux console
0 / 5 実行済み
Loading Linux Terminal...

ファイルを削除 — rm

rmはファイルを削除するコマンドです。

ゴミ箱には入らず、その場で消えて元には戻せません

1 つずつ確認しながら消したいときは-i、エラーや確認を出さずに消したいときは-fを付けます。

書き方意味
rm ファイルファイルを削除する(戻せない)
rm -i ファイル1 つずつ確認しながら削除する
rm -f ファイル確認や警告なしで強制的に削除する
rm の動き
rm file.txtファイルをその場で削除ゴミ箱なし元には戻せないrm -i file.txt削除前に y/n で確認
rmはゴミ箱を通さず即削除します。-iを付けると削除前に確認できます。
echo 'log' > old.log    # 素材を作成
rm old.log              # ファイルを削除
echo 'tmp' > tmp.log    # もう 1 つ作成
rm -i tmp.log           # 削除前に y/n を確認

echo 'temp' > junk.txtで不要ファイルを作成してください。

rmjunk.txtを削除してください。

echo 'temp' > junk2.txtでもう 1 つ作ってください。

rm -i junk2.txtを実行してください(削除前に確認が出るのでyを入力します)。

lsで両方とも消えたことを確認してください。

Linux console
0 / 5 実行済み
Loading Linux Terminal...

rm は戻せない

rmで消したファイルはゴミ箱に入らず、その場で削除されます。

特にrm -rf確認なしでディレクトリと中身をすべて消すので、対象の名前をよく確認してから実行してください。

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

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

中にファイルやサブディレクトリが残っていると削除されず、ディレクトリはそのまま残ります。

-pを付けると、a/b/cのような入れ子を空の親までさかのぼって順に削除できます。

書き方意味
rmdir ディレクトリ空のディレクトリを削除する
rmdir -p a/b/c空なら c → b → a と親までたどって削除する
rmdir の動き
mkdir box空のディレクトリができるrmdir box(空)空なので削除できるrmdir box(中身あり)削除されず残る(エラー)
rmdirは空のときだけ成功します。-pで空の親までまとめて削除できます。
mkdir empty_box        # 空ディレクトリを作成
rmdir empty_box        # 空なので削除できる
mkdir -p a/b/c         # 空の入れ子を作成
rmdir -p a/b/c         # c → b → a と親まで削除

mkdir emptydirで空のディレクトリを作成し、rmdirで削除してください。

mkdir -p a/b/cで空の入れ子ディレクトリを作成してください。

rmdir -p a/b/ccからaまで空の親をまとめて削除してください。

lsemptydiraが消えたことを確認してください。

Linux console
0 / 5 実行済み
Loading Linux Terminal...

ディレクトリごと削除 — rm -r

中にファイルやサブディレクトリがあるディレクトリはrmdirでは消せません。

rm -rを使うと、そのディレクトリと中身をまとめて削除できます。

-fも付けたrm -rfは確認も警告も出さずに消すため、最も慎重に扱うオプションです。

書き方意味
rm -r ディレクトリディレクトリと中身を再帰的に削除する
rm -rf ディレクトリ確認なしで中身ごと強制削除する(最も危険)
rm -r の動き
rmdir dir(中身あり)消せない(エラー)rm -r dirディレクトリと中身を丸ごと削除戻せない実行前にパスを指差し確認
中身のあるディレクトリはrm -rで丸ごと削除します。戻せないのでパスを確認してから実行します。

mkdir -p trash/innerで使い捨ての入れ子ディレクトリを作成してください。

rm -rtrashをディレクトリごと削除してください。

lstrashが消えたことを確認してください。

Linux console
0 / 3 実行済み
Loading Linux Terminal...
QUIZ

理解度チェック

まずは1問ずつ答えてみましょう。

Q1cpmvの違いとして正しいものはどれですか?

Q2ディレクトリを中身ごとコピーするときに付けるオプションはどれですか?

Q3rm -r trashを実行すると何が起こりますか?