背景 実行中のファイルに対して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 アクセス許可ビット ファイルサイズ データブロックへのポインタ