[Mac] フォルダ構造ごとそのままコピーし、元のフォルダの古いファイルを削除2
以前 Mac で自動でフォルダ構造ごとそのままコピーし、さらにソースフォルダの古いファイルを削除する方法を書いた。
[Mac] フォルダ構造ごとそのままコピーし、元のフォルダの古いファイルを削除 – with a Christian Wife
https://wacw.cf/2018/11/21/organise-files-automatically/
しかし Hazel を使ったフォルダのコピーの挙動がどうも怪しいので、シェルスクリプトを実行したコピーに変えることにした。
具体的には以下のようにする。
rsync -au /[ソースディレクトリ]/ /[コピー先ディレクトリ]
これでサブディレクトリ以下もコピーできるし、ソースディレクトリでファイルを削除してもコピー先ではそのファイルは残ったままになる。(もしソースディレクトリの削除をコピー先にも反映させたければ –delete のオプションを付ければいい。)
またポイントはソースディレクトリの末尾に / を付けること。もし / を付けなければ、コピー先ディレクトリで [ソースディレクトリ] からコピーされてしまう。
ファイルの自動削除は冒頭リンクの方法と変わらない。指定ディレクトリ以下の3日より前に更新されたファイルを削除するなら以下のようになる。
find /[ディレクトリ] -mtime +3 | xargs rm -f
この方法ではサブディレクトリは削除されない。
私はこれらを Keyboard Maestro に登録し、毎日指定時刻に実行するようにしている。
参考:
rsyncコマンドで外付けHDD同士を同期し、バックアップする – RT:ドヤリング
http://doyaling.hatenablog.com/entry/2015/02/16/032750
rsync でディレクトリの同期(バックアップ) – maruko2 Note.
http://www.maruko2.com/mw/rsync_でディレクトリの同期(バックアップ)
macosx 設定メモ rsync 編 – Qiita
https://qiita.com/BlueEventHorizon/items/209af1c9beaff669cd68
findの便利な近い方 | Tea Leaves
https://tea-leaves.jp/home/ja/article/1361456848
ある一定以前のフォルダを削除するシェル
http://blog.zamuu.net/2013/0703/limit_day_delete_shell/
ファイル・ディレクトリを削除するrmコマンドについて詳しく!【Linuxコマンド集】
https://eng-entrance.com/linux_command_rm
指定日付以前の古いファイルを削除したり移動する方法
http://www.searchman.info/tips/2950.html