我在AIX上测试了以下内容,并且可以使用。
logfile=log.txt
echo "Hello" > "$logfile"
exec 1>>"$logfile"
mv "$logfile" "${logfile}_new"
echo "World"
运行此脚本后,文件log.txt_new
将包含:
Hello
World
我没想到它会起作用,因为我将文件重命名为stdout
被重定向到的位置。它为什么起作用?
如果我MV /重命名包含日志文件的目录也可以。
您通过寻址文件inode来写入文件log.txt。它不会更改,因为您的exec命令仍可以访问inode。