/ tmpファイルへのリンクは削除されますか?

/ tmpファイルへのリンクは削除されますか?

を使用して一時ディレクトリを作成するスクリプトがありますmktemp -d

一時ディレクトリに作成されたフォルダはスクリプトの出力であり、コンピュータの他の部分にコピーされます。

lnコンテンツを別の場所にコピーするのではなく、同じフォルダを使用するつもりです。/tmpオペレーティングシステムでフォルダをクリーンアップした場合は、ディレクトリのフォルダバージョンがまだ存在するかどうか疑問に思います。

答え1

一時ディレクトリの場所によって異なります。つまり、一時ディレクトリを自分で作成しましたか、それともシステムの(/tmp)を使用していますか?

あなたのシナリオでは、一時ディレクトリを整理した後にファイル/フォルダを維持しようとします。

システムディレクトリにある場合は、/tmpシステムによってクリーンアップされる可能性が高くなります(ディストリビューションによって異なりますが、ほとんどのcron職業や同様のものがあります)。

また、一部のディストリビューションでは、/tmp次の方法を使用してディレクトリを作成しますtmpfs。これは、コンテンツがRAM /スワップに保存され、再起動時に保存できないことを意味します。

作成する場合のみ硬い協会。ただし、ハードリンクは、マウントされた単一のファイルシステム内でのみ作成できます。たとえば、にマウントされたtmpfs /tmpファイルシステムへのハードリンクを作成することはできません。ext4/mystuff

あなたは作ることができます柔らかいインストール場所のどこかにリンクされますが、一時/mystuffファイルが削除されると、リンクは「nowehere」を指します。これにより、オブジェクトがわずかに破損します。tmpfs/tmp

ディストリビューションがファイル/tmpを保存したい場所(/mystuff)と同じ物理ディスクにファイルを保存している場合は、システムをクリーンアップする前にリンクが作成されている限り、ハードリンクは機能します/tmp

答え2

私は仕事をより明確にするために例を挙げました。

特定のディレクトリに2つのファイルを作成しました。

cat sourcefile
This is the sourcefile. 
##This is to create a hard link. 

ln sourcefile destfile

##List the files available. 
ls
destfile  sourcefile

cat destfile
This is the sourcefile. 

ハードリンク上記のディレクトリのファイルと同様に、/tmpソースファイルを削除するとどうなるかを見てみましょう。

rm sourcefile
rm: remove regular file `sourcefile'? y
ls
destfile
cat destfile
This is the sourcefile

上記の場合でもdestfile接続は可能です。

さて、ソフトリンクを使って何が起こるのか見てみましょう。

cat sourcefile
This is the sourcefile for softlink example. 
ln -s sourcefile destfile
ls -l
total 4
lrwxrwxrwx 1 root root 10 Jun 26 13:40 destfile -> sourcefile
-rw-r--r-- 1 root root 46 Jun 26 13:40 sourcefile

今、あなたの場合は、ソースファイルを削除し、何が起こるかを見てみましょう。

rm sourcefile
rm: remove regular file `sourcefile'? y
ls
destfile
cat destfile
cat: destfile: No such file or directory

したがって、ソフトリンクを使用すると、データが存在しない可能性があります。

編集する

mktemp以下を使用して一時ファイルを作成しました。ハードリンク/tmp私の作業ディレクトリの1つにディレクトリを追加します。

再起動後も、コンテンツが利用可能であることを確認するためにコンピュータを再起動しました。私が使うならハードリンク、再起動後もコンテンツを使用できます。これを確認する理由は、通常、再起動時にディレクトリが消去されるため/tmpです。

関連情報