メインコンテンツへスキップ
レッスン 4 / 10推定時間: 20

ファイルのコピーと移動

cp、mvコマンドを使ってファイルやディレクトリをコピー・移動・リネームする方法を学びます

このレッスンの学習目標

  • ファイルとディレクトリをコピーできる
  • ファイルとディレクトリを移動できる
  • ファイルのリネームができる
  • 安全なコピー・移動方法を理解する

ファイルのコピー:cp

cp(Copy)コマンドは、ファイルやディレクトリをコピーします。

基本的なコピー

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

試してみよう:

  1. cp original.txt copy.txt - ファイルをコピー
  2. ls -l - 両方のファイルを確認
  3. cp original.txt backup/ - 別のディレクトリにコピー

cpの重要なオプション

オプション説明使用例
-i上書き前に確認cp -i source.txt dest.txt
-rディレクトリを再帰的にコピーcp -r srcdir/ destdir/
-p属性(タイムスタンプ等)を保持cp -p important.txt backup.txt
-v詳細を表示cp -v file1.txt file2.txt
-n既存ファイルを上書きしないcp -n source.txt dest.txt

ディレクトリのコピー

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

ディレクトリをコピーする際は必ず-rオプションを使用します:

cp -r project/ project_backup/

ファイルの移動とリネーム:mv

mv(Move)コマンドは、ファイルの移動とリネームの両方に使用されます。

ファイルの移動

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

試してみよう:

  1. mv file.txt documents/ - ファイルを移動
  2. ls - 元の場所から消えたことを確認
  3. ls documents/ - 移動先を確認

ファイルのリネーム

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

同じディレクトリ内でmvを使うとリネームになります:

mv oldname.txt newname.txt

mvの便利なオプション

オプション説明使用例
-i上書き前に確認mv -i file.txt dest/
-n既存ファイルを上書きしないmv -n source.txt dest.txt
-v詳細を表示mv -v *.txt documents/
-f強制的に上書きmv -f old.txt new.txt

実践的な使用例

1. バックアップの作成

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

設定ファイルを編集する前にバックアップ:

cp config.txt config.txt.bak
# または日付付きバックアップ
cp config.txt config_$(date +%Y%m%d).txt

2. 複数ファイルの整理

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

ファイルを種類別に整理:

mkdir photos documents
mv *.jpg photos/
mv *.pdf documents/

3. ディレクトリ構造の再編成

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log
# プロジェクトの再構成
mv old_project new_project
cd new_project
mv src source
mv tests test

高度なテクニック

ワイルドカードを使った操作

# 特定のパターンのファイルをコピー
cp *.txt backup/

# 番号付きファイルを移動
mv file[1-5].txt archive/

# 拡張子を除いてコピー
cp report.* reports/

条件付きコピー

# 新しいファイルのみコピー
cp -u source/* destination/

# シンボリックリンクを作成
cp -s original.txt link_to_original.txt

よくあるミスと対処法

1. ディレクトリのコピーで-rを忘れる

# エラーになる
cp mydir/ backup/

# 正しい
cp -r mydir/ backup/

2. 移動先に同名ファイルがある

# 確認なしで上書きされる!
mv important.txt documents/

# 安全な方法
mv -i important.txt documents/

3. スペースを含むファイル名

# 間違い
cp my file.txt backup/

# 正しい
cp "my file.txt" backup/
cp my\ file.txt backup/

実践演習

以下の課題に挑戦してみましょう:

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

課題

  1. websiteディレクトリ全体をwebsite_backupとしてコピー
  2. index.htmlをhome.htmlにリネーム
  3. main.cssをstylesからルートディレクトリに移動
  4. website_backupを確認して正しくコピーされたか確認

解答例:

cp -r website website_backup
cd website
mv index.html home.html
mv styles/main.css .
ls -la
ls -la ../website_backup/

安全な操作のためのヒント

エイリアスの活用

多くのLinuxシステムでは、安全のためのエイリアスが設定されています:

# .bashrcや.zshrcに追加
alias cp='cp -i'
alias mv='mv -i'

操作前の確認

# 実行前にどのファイルが影響を受けるか確認
ls -la source_files/
# その後実行
cp -r source_files/ destination/

まとめ

このレッスンでは、cpmvコマンドを使ったファイル操作を学びました。これらのコマンドは日常的によく使用するため、オプションも含めてしっかり覚えておきましょう。

次のレッスンでは、ファイルの内容を表示する方法について学びます。

💡 ヒント:Tab補完を活用すると、長いファイル名も簡単に入力できます!

さらに学習を続けるには

素晴らしい学習ペースです!次のレッスンに進むには、無料会員登録をお願いします。無料会員では各コース3レッスンまで学習できます。

無料で続きを学ぶ

各コース3レッスンまで学習可能

学習進捗の自動保存

コース修了証明書の発行