Time Machine のスナップショットをコマンドラインで削除する
Time Machine のスナップショット、つまり /Volume/Time Machine/Backups.backupdb/[Machine Name]/2016-05-05-002654/ みたいなやつを手動で削除したいとします。
これを Finder 経由で、ごみ箱に入れてごみ箱を空にするという手順でやると、時間がかかるうえに、途中で「ロックされている項目を削除してもいいか?」と一度確認まで入ります。さっさと削除してくれよという感じがします。
ということで、めんどいなので rm -rf するかと思いきや、これは削除するパーミッションがあっても、 operation not permitted となって失敗します。どうしてかというと Time Machine のスナップショットは専用のカーネル拡張で守られているからです。守られているにはそれなりの理由があるので rm -rf は素直に諦めましょう。
ということで、tmutil delete を使います。
$ cd /Volumes/Time Machine/Backups.backupdb/Alice $ sudo tmutil delete 2016-05-05-002654/ Password: Deleting: /Volumes/Time Machine/Backups.backupdb/Alice/2016-05-05-002654
こんな感じで使えます。スナップショット1つ消すのに結構な時間がかかりますが、特に確認は入らないので放置すれば終わります。
余談:なぜ rm -rf がダメか
Time Machine は差分バックアップのためハードリンクを活用します。これはディレクトリに対してもそうで、内容に変化のないディレクトリはハードリンクになります。 (ちなみにディレクトリのハードリンクは標準 ln では作れないので、brew install hardlink-osx で入る hln で試すことができます)
このとき、違うスナップショット間でも同じディレクトリエントリとなるわけなので、このディレクトリエントリ中のファイルエントリを削除 (unlink) してしまうと、このディレクトリにハードリンクしているスナップショット間でもファイルが消えてしまいます。なので rm -rf が禁止されています。
$ mkdir foo bar $ touch foo/a.txt $ ls foo/ bar/ $ ls foo a.txt $ hln foo bar/foo $ ls bar/foo a.txt $ rm -rf foo $ ls bar/ $ ls bar/foo # a.txt が消える
関連エントリー
- Mac の Time Machine が今何をバックアップしているのか? を知る Time Machine はかなり気にせずに使えるのがいいというものですが、バックアップ実行中に環境設定を開いても今何をコピーしているのが全...
- perl 5.19.9 の signatures 構文 (普通に引数を書ける構文) を試す Perl 5.19.9 で実装された signatures の構文をためしてみる - tokuhirom blog を見てそんなのできたのか...
- nginx の rewrite ルールっぽく h2o の mruby でリクエストの rewrite を行う このサイトのHTTPS化にあたって nginx で書いていた rewrite のルールを h2o の mruby で処理するように変える必要...
- Ruby でスコープをはずれたときに自動で何かをする Guard オブジェクト Perl だと Guard オブジェクトとかいうハックがあって、スコープを出るタイミングで必ず呼ばれるファイナライ...
- LPC11U35 の mbed ローカル開発環境構築 秋月でLPC11U35 が乗っているボードを買った。うっかり3枚買っていた。EA LPC11U35 QuickStart Board と互換...
コネクタのジェンダー
コネクタのペアの極性のことをジェンダーといい、それぞれオス(male)とメス(female)に呼びわけられる。変換コネクター(アダプター)はジェンダーチェンジャー(gendar changer)と言う。海外サイトで高周波コネクタを買いたいときはこれで検索するのが確実。
ただどうも結構よくどっちがどっちかわからなくなる。コンセントみたいに単に突起が出てるだけ/受ける側は穴が開いているだけなら簡単だけど、SMAコネクタにようにハウジング(ピンを保護したりするための囲い)がついているとややこしくなる。
しかも SMA コネクタの場合 RP-SMA というオス型ピン+メス型ハウジング/メス型ピン受け+オス型ハウジングというカオスな組み合わせがあるのって、どっちがオスでどっちがメスなのかわかりにくい。考えかたとしては内部にピンが立っているほうがオスであっているはずだけど自信がなくなる。
関連エントリー
- T型電源コネクタ 適当な電源コネクタをつけようと思ったが、とにかく電源コネクタというものは大量に種類があるので、何が「適当」かわからない。 入手性 電流容量 ...
- 汎用コネクタ コネクタの種類は実際のところ大量にあって、しかもはっきりしたデファクトスタンダートっぽいものもあまりない。というか異種接続防止のためか意図的...
- NanoVNA Test board kit というやつ Aliexpress を徘徊していたらそういうものが出ていたので買ってみた (400円ほど)。これ元ネタはおそらく SDRKit のVNWA...
- Fusion 360 の練習 DB25 のプラグ (オス) コネクタ D-Sub 25 の規格とか初めてみたりした。ピンはスケッチの段階で「矩形状パターン」を上と下で2回やっている。 付け根のモデリングのために...
- 自作用の汎用コネクタ 自作していると、ケースに取り付けるタイプのコネクタで汎用性が高いものが欲しくなる。つまり ケースに簡単に取り付けられる 線の数が多い 入手性...
ユーザーが増えても嬉しくない
ユーザーが増えると嬉しいものだ!というのはわかるし、そうなんだろうけど、自分に正直に考えてみると、自分はそのことがそれほど嬉しくないようだ。
むしろ、ユーザーが増えるとミスしたときの影響範囲が広くなるので、どんどんコード書くことに対して嫌になっていく。プログラミングは「てこ」であって、小さな労力で大きなことをやることができるが、すなわち負の面では小さなバグで大きな影響を与える。当然、ほとんどの場合は良い方向に作用するし、そうするように作っているつもりだが、バグのないコードを書くことは不可能なので、コードを書けば書くほど、負の作用に怯えることとなる。
「自分のプロダクトがたくさん使われてるのってすごいと思わへん?」と聞かれると、理性の上ではそうですねと思うが、直感的にはまずは辛いという気持ちがでる。
根幹にあるのは、「たくさんの人に使われる」ことが自分の中の承認システムに組み込まれておらず、それを天秤にかけたとき、嬉しさの方に傾かないということだ。
たくさんの人に使われるからといって、技術的にすごいとはいえない、というのもあるかもしれない。ただこの考えかたは美化しすぎで、たくさんの人に使われてバグが見つかってバカにされるのが嫌なだけというのが正直なところだという気がする。
関連エントリー
- ✖ 検索クエリを眺めると、ほんとタバコの消臭に関する流入が多くて、たくさんの人が困っていることがわかる。
- ✖ たくさんの人を同時に幸せにしたいとは思わない 社会的によいことと思えることをしたい 金以外に直接的に自分が幸福になることをしたい ストレス ...
- ✖ ツールの使いかたで時間をとられるのは非常にもったいないので、おおむね最近のコードは Chrome をメインに「モダンブラウザで書ける新しい ...
- CGMサービスの矜持について だいぶ前 (数年前) からからモヤモヤしてて何度も似たようなことがある度に↓みたいなツイートとかはしていたんですが、ちゃんと日記に書いてなか...
- 台風19号 1Fに住んでいて、ハザードマップでは最悪2mの浸水、ということは事前に調べてあった。土曜日10時ごろには既に、浸水地域に対してエリアメールで...
