NTFSファイルシステムに保存されているファイルを読み込んでいて、読み込み中にそのファイルの移動や名前の変更を試みた場合、そのようにはできません。これをEXT3のようなUNIXファイルシステムで試してみると成功し、読み込みを行っているプロセスは影響を受けません。私はファイルを読み書きすることもでき、読み込みプロセスは影響を受けません。これはどのように作動しますか?なぜこの動作がUNIXファイルシステムではサポートされていますが、NTFSではサポートされないのですか?私はハードリンクやinodeと関係があるという曖昧な気持ちがありますが、私は良い説明に感謝します。UNIXコマンドmvとrmはオープンファイルでどのように動作しますか?
答えて
Unixのファイルシステムは、ファイルを見つけるための参照カウントと二層アーキテクチャを使用します。
ファイル名は、情報ノードまたはインデックスノード用にinodeと呼ばれるものを指します。 inodeは、ファイルの内容(通常、ディレクトリ、デバイスなど)や所有者などのメタデータと同様に、ファイルの内容を格納します(ポインタ)。
複数のファイル名は同じiノードを参照できます。それらはhard linksと呼ばれます。さらに、file descriptor(fd)はinodeを指します。 fdは、ファイルを開くときにプロセスが取得するオブジェクトのタイプです。
Unixファイルシステムのファイルは、最後の参照がなくなったときに消えます。それ以上の名前(ハードリンク)やfdがそれを参照していないときだけ消えます。したがって、rm
は実際にはファイルを削除しません。ファイルへの参照を削除します()。
このファイルシステムの設定は混乱しているように思えるかもしれませんが、NFS(特にNFSの場合)に問題が生じることがありますが、多くのアプリケーションでロックが必要ないという利点があります。また、多くのUnixプログラムは一時ファイルを開いて直ちに削除することで、このような状況を有効に活用しています。終了するとすぐに、クラッシュしても、一時ファイルはなくなります。
unixでは、ファイル名は単に実際のファイル(iノード)へのリンクです。ファイルを開くと、実際のファイルへの(一時的な)リンクも作成されます。ファイルへのリンクがすべて消えたら(rmとclose())、ファイルは削除されます。
NTFSでは、論理的にファイル名はファイルです。ファイル名からmetainfoファイルへの間接レイヤーはありません。これらは同じオブジェクトです。あなたがそれを開くと、そのファイルは使用中であり、unix上の実際のファイル(inode)が使用中に削除されないのと同様に、削除することはできません。
のUnix: ファイル名 - >のFileInfo - >データ
NTFSファイル: ファイル名/ FileInfoには - >ファイル・データ
- 1. GDB rwatchコマンドとawatchコマンドはどのように動作しますか?
- 2. sshとmvコマンドが動作しないスクリプト
- 3. mvコマンドは、Solaris
- 4. Meteorはどのように動作しますか?クライアントとサーバーはどのように動作しますか?
- 5. Perl CGIでは、どのようにUNIXコマンドを使用できますか?
- 6. ウィンドウ内のrmとmvに相当する.cmd
- 7. コマンド:「RM」と「CP」
- 8. `rm -f`は動作しますが、` rm --force`はOSXでエラーを返します
- 9. "mv"コマンドに "-i"オプションを含むように設定するにはどうしたらいいですか?
- 10. Unixのコマンド "history | grep keyword"と同じように動作するPerlスクリプト
- 11. icmpパケット(pingコマンド)はどのように無線ネットワークで動作しますか?
- 12. mvコマンドの結果をどうにか元に戻すことはできますか?
- 13. sql 'limit'コマンドはどのようにして動作しますか?
- 14. "git rm"が動作しない場合はどうなりますか?
- 15. 以下のsedコマンドはどのように動作しますか?
- 16. は、UNIXでコマンドとして*
- 17. Unixコマンドが動作しない
- 18. PHPは "リモートインクルード"とはどのように動作しますか?
- 19. git rmは便利なコマンドですか?
- 20. Linuxで画面コマンドはどのように動作するのですか
- 21. Sqoop appendコマンドはhadoopでどのように動作するのですか
- 22. NodeJS - connection.rollback()はasync.parallelとどのように動作しますか
- 23. 〜〜xと〜-xはどのように動作しますか?
- 24. document.getElementById - onchangeイベントとはどのように動作しますか?
- 25. jmsはtibcoとどのように動作しますか?
- 26. PartialClassGenerationTaskとMarkupCompilePass1はどのように動作しますか
- 27. compareToとcompareはどのように動作しますか?
- 28. Unixの-sizeは、UNIXコマンドで
- 29. UNIXコマンド操作
- 30. Makefileでは、VPATHはどのように動作しますか?
開いているファイルを移動できる場所に制限はありますか?例えば。同じファイルシステム内でのみ? –
@van_pozdeevは、異なるファイルシステム間でファイルに 'mv'を実行すると、実際にデータをコピーして元のファイルを削除します。この場合、オープンファイルの' rm'に似ています。 – dsonck92