statistics
データファイルが定期的に保存されるUbuntuサーバーにフォルダがあります。新しいファイルを保存するためにフォルダを再作成するときにフォルダの名前を変更するにはどうすればよいですかstatistics
?backup-xx
statistics
フォルダ内のファイルはstatistics
PHPによって生成されますfile_put_contents
。
私はフォルダに多くのファイルがあるので、フォルダの名前を変更することを好みますstatistics
。
ベストアンサー1
いいえ原子的にあるディレクトリを別のディレクトリに置き換えます。古いディレクトリを移動して新しいディレクトリを作成できます。
mv statistics backup-xx
mkdir statistics
statistics
しかし、それは存在しない小さな時間の窓を残します。これは、一部のプロセスがいつでもディレクトリ内のファイルを削除できる場合に問題になります。
ディレクトリをアトミックに効果的に置き換えるには、シンボリックリンクを使用する必要があります。名前に最初から期間を含むディレクトリを作成します。
mkdir "statistics-$(date +%Y%m%d)"
(またはディレクトリの命名規則を選択したい)現在の場所の固定名を持つシンボリックリンクを作成します。
ln -s … statistics
ディレクトリを置き換えるには、まず新しいディレクトリと新しいシンボリックリンクを作成し、それを移動して古いシンボリックリンクを上書きします。mv
シンボリックリンクのプレーンテキストとプレーンテキストの両方はこれを行いません。ln -s
宛先ディレクトリ内にエントリを作成します。 GNU coreutils は、ln -snf
新しいシンボリックリンクを作成する前に既存のシンボリックリンクを削除してパスが存在しない小さな時間を残すため、適切ではありません。mv -T
新しいシンボリックリンクでGNU coreutilsを使用できます。
new_dir="statistics-$(date +%Y%m%d)"
mkdir "$new_dir"
ln -s statistics.new
mv -Tf statistics.new statistics