を使用して一時ディレクトリを作成するスクリプトがあります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
です。