
UNIX Cafe | 第12回
はじめに|ファイルの山をどうする?
ミナちゃんユニ先生〜、パソコンの中がごちゃごちゃです💦
書類フォルダに同じ名前のファイルがいっぱいあって、
どれが最新なのかもう分からなくなっちゃいました。



ふふっ、それは“カフェの倉庫が片づいてない”のと同じだね。
今日は「探す」「移動する」「整理する」をスクリプトでやってみよう。
カフェのバックヤードをスッキリさせる気分でね。
find コマンドで探す



まずはどんなファイルがあるか、見つけるところからですね。



そう。 find は“探すプロ”なんだ。
日付や種類を指定して、欲しいファイルを見つけてくれる。
3日以上前に更新されたファイルを探す
bash
$ find ~/Documents -type f -mtime +3


あっ、出てきました!
古いファイルがこんなにあるなんて…まるで“在庫過多カフェ”ですね💦



ふふっ、まずは現状を知ることが整理の第一歩だよ。
mv と cp でお引っ越し



次はこの古いファイル、どうしたらいいんですか?



mv コマンドを使えば“お引っ越し”できるよ。find と組み合わせれば、自動で整理整頓だ。
まずコピーで試す
bash
$ find ~/Documents -type f -mtime +3 -exec cp {} ~/backup/ \;cp -n は、同名ファイルがあっても上書きしません。
コピーなので元のファイルは残ります
確認だけする(dry-run)
bash
$ find ~/Documents -type f -mtime +3 -print実際に移動する前に対象ファイルだけ一覧表示して確認すると安全です。



いきなりmvで移動すると必要なファイルまでbackupされるかも?
なので、まずはcpでファイルの内容を確かめます。



mvで移動すると、元々どこにあったファイルかわからなくなるからね!
if文で「なければ作る」



でも先生、もし backup フォルダがなかったらどうなりますか?💦



いい質問だね。それを防ぐのが “if文”。
「もしなければ作る」って書けば、ちゃんと気を利かせてくれる。
bash
$ if [ ! -d ~/backup ]; then
mkdir ~/backup
echo "backupフォルダを作成しました!"
fi


わぁ〜! ほんとに“気が利くスクリプト”ですね。
これならエラーにもならないし、安心です。



そうだね。
UNIXのスクリプトは、指示を少し丁寧に書くだけで、
本当に“賢いアシスタント”になるんだよ。
Try it!|自動お片づけスクリプトを作ってみよう
安全な範囲を指定してファイルを移動する
#!/bin/bash
if [ ! -d ~/backup ]; then
mkdir ~/backup
fi
find ~/Documents -type f -mtime +3 -exec mv {} ~/backup/ \;
echo "☕ 古いファイルを backup に移動しました!"
「ホームフォルダの中の Documents フォルダ」にあるユーザーが作成したファイルが対象になります。



これで「掃除スクリプト」完成ですね!
実行したら本当にスッキリして、気分も軽くなりました。



よくできたね。
こうして毎日の整理をスクリプトに任せれば、
作業も気持ちもスッキリ整うんだ。
コーヒーブレイク:ユニ先生のひとこと


ページのまとめ
- find :条件をつけてファイルを探す
- mv :ファイルを移動する
- cp :ファイルをコピーする
- if [ ! -d ] :フォルダがなければ作る



今日は“片づけ上手なスクリプト”を作れてうれしいです。
これなら放っておいても、フォルダが整頓されますね!



ふふっ、スクリプトで片づけるとね、
机の上だけじゃなく、心の中までスッキリするんだ。



