我有一个程序可以定期将文件输出到目录,比如说/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/。
它确实有一个缺点:如果文件很大(超过几 GB?),那么复制可能需要一段时间。如果这是一个问题,请发表评论,我将实现针对大文件优化的内容(使用尾部-f)这也会实时重定向内容