練習問題:ファイル操作 8問

作成・移動・削除・リネーム・一括処理の基本を固めます。
cp / mv / rm / touch / ワイルドカード(*)を中心に練習します。

想定レベル:Lv1〜3/目安:各3〜6分

1) 空ファイルを一度に3つ作成する

問題:カレントに report1.txt report2.txt report3.txt を空で作成してください。
ヒント:同じコマンドに複数のファイル名を並べられます。

解答例
touch report1.txt report2.txt report3.txt

2) 画像だけを images/ へ移動する

問題:カレントにある *.jpgimages/ ディレクトリへまとめて移動してください(images/ が無ければ作成)。
ヒント:ディレクトリ作成と移動を1行で。

解答例
mkdir -p images && mv *.jpg images/

3) 拡張子 .txt を一括で .md にリネームする

問題:カレントにある *.txt を全て、拡張子を .md に変更してください。
ヒント"${f%.txt}.md" で拡張子だけを置き換え。

解答例
for f in *.txt; do mv -- "$f" "${f%.txt}.md"; done

4) 最終更新が最新のファイルを1つだけ backup/ にコピーする

問題:カレントで最も新しいファイルを1つ選び、backup/ にコピー(タイムスタンプ保持)してください(backup/ は自動作成)。
ヒントls -t で新しい順。-p で時刻保持。

解答例
mkdir -p backup && cp -p "$(ls -1t | head -n 1)" backup/

5) サイズが 0 バイトのファイルを確認しながら削除する

問題:カレント配下(サブディレクトリ含む)の空ファイルを見つけ、確認付きで削除してください。
ヒントfind -size 0-exec rm -i の組み合わせ。

解答例
find . -type f -size 0 -print -exec rm -i {} ;

6) src/ を日付付きディレクトリにバックアップする

問題src/ の内容を backup_YYYYMMDD/ という今日の日付名のディレクトリに丸ごとコピーしてください(属性保持)。
ヒント$(date +%Y%m%d)cp -a。末尾の / も意識。

解答例
dir="backup_$(date +%Y%m%d)"; mkdir -p "$dir" && cp -a src/. "$dir"/

7) ファイル名に空白を含むファイルだけを targets/ へ移動する

問題:カレント直下で、名前に空白(スペース)を含むファイルだけを targets/ に移動してください(確認付き)。
ヒント-name "* *"-maxdepth 1mv -i

解答例
mkdir -p targets && find . -maxdepth 1 -type f -name "* *" -print -exec mv -i {} targets/ ;

8) 削除の代わりに .trash/ へ退避する(簡易ゴミ箱)

問題:カレントの *.log削除せず .trash/ に退避してください(上書き防止の確認付き)。
ヒントmv -i と隠しディレクトリ。

解答例
mkdir -p .trash && mv -i *.log .trash/

安全に試すためのメモ

  • rm は極力 -i(確認付き)を併用しましょう。
  • ワイルドカード(*)は展開結果をechoで確認してから実行すると事故を防げます:echo mv *.jpg images/
  • 大量処理は -print で対象を先に一覧してから -exec するのが安心です。

学びを“実務”へつなぐ最短ルート

独学で積み上げた「わかった」を、仕事で使える「できる」へ。
学習ハブの内容を踏まえて、実務に直結する学習設計・添削・質問環境を整えたい人は、下記のページで具体的な進め方を確認してください。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする