
No.3ベストアンサー
- 回答日時:
単に cp だとファイルがオープンされているかどうかに関係なく上書きされます. そのため起動しているプログラムのファイルを上書きしてしまうとエラーになる可能性もありますが, 一方でログをクリアしたいときなどは積極的に上書きしてもらうこともあります.
逆に rm + cp あるいは mv + cp だと, rm (あるいは mv) する前のファイルがオープンされているときには既にオープンされているファイルには影響を与えないのですが, 新たにオープンすると cp されたあとのファイルをオープンすることになります.
これは, ファイルが「ディレクトリエントリ→iノード番号→ファイルの実体」のように管理されており, またオープンしているファイルを iノード番号で管理しているためで,
・cp ではファイルの実体を上書きする
・rm ではディレクトリエントリを削除する (iノードへの参照がなくなればファイルの実体を削除する)
・mv ではディレクトリエントリに記録されているファイル名を変更する (「iノード番号→ファイルの実体」の部分にはタッチしない)
というそれぞれの挙動に依存しています.
No.2
- 回答日時:
実行形式ファイルを実行したとき、ファイルの内容はメモリ中に展開されるので、それ以降に削除しても動作しているプログラムには影響を与えません。
ただし、そのプロセスの内部で削除したプログラムを起動するように仕組まれている場合は、既にファイルが存在しないわけですから、エラーが発生する可能性があります。
No.1
- 回答日時:
プロセスの実行中は, 実行形式ファイルはオープンしたままとなっています. 一方, rm をファイルに対して実行しても, 「オープン
しているプロセスがなくなる」までは (それ以降に実行されるプロセスからは見えませんが) 実際の削除は行われません.この回答への補足
回答ありがとうございます。
プロセス起動中に、実行形式ファイルに対してcpで上書きを行ったときと、実行形式ファイルを一度消した(rm)あとに、cpで新たにファイルを作ったときでは、状態が違うということですね?。
動作中のプログラムの入れ替え(バージョンアップなど)を行う場合、プロセスの状態を気にせず、rm後に、新たにファイルを作成しておけば、プロセス終了後、再度プロセスを起動したときに、入れ替え後のファイルが実行されるという使い方が可能という認識でよろしいでしょうか?。
今までの経験では、プロセス起動中にcpで上書きしたときには、動作中のプロセスが異常終了してしまいますが、プロセス起動後にファイルを一度リネームし、新たにファイルを作成(cp)したときには、プロセスは正常に動作し続けて、一度プロセス終了後、再度起動した時には、新たなファイルが実行されるという、期待通りの動きをしてくれているようなのですが、今一つ根拠のない使い方で自信が持てないのですが...。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- その他(コンピューター・テクノロジー) FPGA構成データ、ソフトウェアデータ をボード Zybo Z20 用に転送する方法 1 2023/07/25 18:19
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- AJAX RPA(PowerAutomate)の実装について 1 2023/07/31 13:46
- ノートパソコン Windows 10 動作改善方法 6 2023/04/26 22:30
- Outlook(アウトルック) 【 Windows 10 】アドレス帳に正しくインポートを完了させたい。 3 2023/04/23 13:41
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
emlをtxtに変換するには?
-
onedriveの中身を削除したらパ...
-
教えてください!困ってます。
-
Winmerge ファイルの中身は同じ...
-
ファイルの先頭行を全て削除したい
-
Windows10 フォルダ内の自動並...
-
ODBCエラー「admin」によってロ...
-
QuickDraw ピクチャを変換した...
-
.rndというRNDファイルは、何な...
-
office365 ファイルを削除したい
-
Excellにて→ファイルエラー:デ...
-
バッチファイルで変数の中身を...
-
teratrermを使ったデータの送信...
-
macのdmgファイル(動画)をMP4...
-
コマンドプロンプトによるフォ...
-
mrl→midファイルへ
-
ファイルの単位
-
application/octet-streamファ...
-
「$TD ファイル」を開く方法を...
-
ファイル操作(削除など…)の履...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Winmerge ファイルの中身は同じ...
-
教えてください!困ってます。
-
emlをtxtに変換するには?
-
onedriveの中身を削除したらパ...
-
同期センターのマークが出てま...
-
コマンドプロンプトによるフォ...
-
ファイルの先頭行を全て削除したい
-
mrl→midファイルへ
-
外字ファイル、eudc.tte と e...
-
バッチファイルで変数の中身を...
-
office365 ファイルを削除したい
-
Windows10 フォルダ内の自動並...
-
ファイルの単位
-
ショートカットアイコンと、元...
-
VScodeでjarファイルを開く方法
-
macのdmgファイル(動画)をMP4...
-
バッチファイルからタスクスケ...
-
フォルダ内の一覧を印刷するには?
-
mac ファイルの詳細情報を編集...
-
Excellにて→ファイルエラー:デ...
おすすめ情報