Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 是否可以将标准输出重定向到文件位置而不是文件描述符?_Unix - Fatal编程技术网

Unix 是否可以将标准输出重定向到文件位置而不是文件描述符?

Unix 是否可以将标准输出重定向到文件位置而不是文件描述符?,unix,Unix,我的问题是,我正在将stdout/stderr重定向到日志文件,但logrotate会使用输出来移动文件,然后转到没有文件的文件描述符 在shell或系统级是否有任何方法将输出重定向到同一位置的新文件?如果您不介意为每行重新打开文件,而不是: $ ... > logfile.txt 2>&1 做: unix中的所有I/O操作都是通过文件句柄完成的。除了轮询文件位置(在操作之前重复打开它),您无法真正做到这一点。 $ ... 2>&1 | while read

我的问题是,我正在将stdout/stderr重定向到日志文件,但logrotate会使用输出来移动文件,然后转到没有文件的文件描述符


在shell或系统级是否有任何方法将输出重定向到同一位置的新文件?

如果您不介意为每行重新打开文件,而不是:

$ ... > logfile.txt 2>&1
做:


unix中的所有I/O操作都是通过文件句柄完成的。除了轮询文件位置(在操作之前重复打开它),您无法真正做到这一点。
$ ... 2>&1 |  while read line; do echo $line >> logfile.txt ; done