概要
https://zenn.dev/kawarimidoll/articles/70e473a198badf
詳細内容
## rmは危険だから代替を使うように矯正したいけど明らかに消して良いファイルに対してはrmを使いたい
https://zenn.dev/kawarimidoll/articles/70e473a198badf
本記事は、誤操作によるファイル削除のリスクを低減しつつ、特定の安全なファイルは効率的に削除できるよう、`rm`コマンドの代替とカスタムシェルスクリプトによる運用方法を提案します。
**Content Type**: ⚙️ Tools
**Scores**: Signal:4/5 | Depth:3/5 | Unique:4/5 | Practical:5/5 | Anti-Hype:5/5
**Main Journal**: 84/100 | **Annex Potential**: 83/100 | **Overall**: 84/100
**Topics**: [[rmコマンド, trashコマンド, シェルスクリプト, 開発者ワークフロー, ファイル管理]]
現代の開発において、`rm`コマンドによる誤削除は、特にGit管理下にない新規ファイルや自動生成される`node_modules`などの肥大化したディレクトリにとって、深刻な事故につながりかねません。本記事は、この危険性に対処しつつ、開発者の生産性を維持するための画期的なアプローチを提案しています。
著者は、macOS 14以降で導入された安全な「ゴミ箱へ送る」コマンド`trash`の利用を推奨します。通常の`rm`コマンドを`trash`のエイリアスにすることで、日常的なファイル削除の安全性が劇的に向上しますが、エイリアスが効かない環境での事故や、特定の「明らかに削除して良い」ファイルに対する迅速な対応ができないという課題が残ります。
このジレンマを解決するため、著者はカスタムシェルスクリプトを作成しました。このスクリプトは、ユーザーが`rm`を実行した際に、あらかじめ設定された`.DS_Store`や`node_modules`といった「安全なファイル」以外であればエラーメッセージを表示して実行を中断させ、`trash`の使用を促します。一方、許可されたファイルに対しては、安全なオプション(`-i --preserve-root`)を付与した実際の`rm`コマンドを内部で呼び出し、迅速かつ意図通りの削除を可能にします。
この手法は、単にコマンドを置き換えるだけでなく、開発者自身の習慣を矯正しつつ、柔軟なファイル管理を両立させる点で重要です。Webアプリケーション開発者は、日常的に扱う大量の生成ファイルや一時ファイルに対し、心理的な安全性と操作の効率性を同時に確保できるようになります。独自の`rm`ラッパースクリプトを導入し、`PATH`を適切に設定することで、個人の開発環境をより堅牢かつ快適に進化させることができるでしょう。