ファイルのコピー: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
試してみよう:
cp original.txt copy.txt
- ファイルをコピーls -l
- 両方のファイルを確認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
試してみよう:
mv file.txt documents/
- ファイルを移動ls
- 元の場所から消えたことを確認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
課題
- websiteディレクトリ全体をwebsite_backupとしてコピー
- index.htmlをhome.htmlにリネーム
- main.cssをstylesからルートディレクトリに移動
- 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/
まとめ
このレッスンでは、cp
とmv
コマンドを使ったファイル操作を学びました。これらのコマンドは日常的によく使用するため、オプションも含めてしっかり覚えておきましょう。
次のレッスンでは、ファイルの内容を表示する方法について学びます。
💡 ヒント:Tab補完を活用すると、長いファイル名も簡単に入力できます!