ファイル出力を別のディレクトリにリダイレクトする方法は?

ファイル出力を別のディレクトリにリダイレクトする方法は?

定期的にファイルをディレクトリに出力するプログラムがあります/a/b。これらのファイルが出力される場所を変更する方法はまったくありません。ただし、これを使用するには、まず次の場所に移動する必要があります/c/dすでに存在する目次。定期的にファイルの内容を移動するのに疲れました。そのディレクトリに作成されたすべてのコンテンツを別のディレクトリにリダイレクトする方法はありますか?私はこれを試しましたが、ln -sリンクコマンドに関する制限された知識のために何もできません。プログラムのコードは変更できません。助けてくれてありがとう。

答え1

/a/b ディレクトリを削除できない場合、ln -sコマンドを実行しても情報は提供されません。

/a/bただし、数秒間このディレクトリに何も書き込まれない場合は、次のことができます。

cd /a
rm -r b   # make sure you have a backup of the contents of this directory 
ln -s /c/d b

書き込みを希望するすべてのアプリケーションは、書き込み権限がある場合はこれらのファイルに書き込むように指示/a/bされます。/c/d

答え2

ここで:

while :; do cp /a/b/* /c/d/; sleep 60; done

60秒ごとに/a/b/の内容全体を/c/d/にコピーします。

1つの欠点があります。ファイルが大きい場合(何GB以上?)、コピーに時間がかかることがあります。これが問題の場合はコメントを残していただければ大容量ファイルに最適化されたものを実装します(次を使用)テール-f)これにより、コンテンツはリアルタイムでリダイレクトされます。

関連情報