背景 実行中のファイルに対してcpで上書きする場合だとText file busyで置き換えられず、mvだと何も聞かれず置き換えられる理由を深掘ってみました。 データ構造 mvやcpの動きを確認する前に必要な前提知識を説明します。 プロセスとinodeとの関係 プロセスとinodeは以下のように プロセステーブルエントリ └ファイルテーブルエントリ └v-node(i-node) という形で繋がっています。 ref: Lec 21: File System, Kernel Data Structures, and Open Files inodeのデータ構造 inodeは以下のような情報を持ちます。 inode番号 ファイル種類(レギュラファイル、ディレクトリファイル、ソケット、etc...) OwnerID GroupID アクセス許可ビット ファイルサイズ データブロックへのポインタ
![inodeから見たmvやcpの動き - Carpe Diem](https://cdn-ak-scissors.b.st-hatena.com/image/square/7ca88211bcffd784229f1b9ff4bcdbc186efde88/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fq%2Fquoll00%2F20191224%2F20191224070835.jpg)