重定向并移动目标文件

问题描述 投票:2回答:1

我在AIX上测试了以下内容,并且可以使用。

logfile=log.txt
echo "Hello" > "$logfile"
exec 1>>"$logfile"
mv "$logfile" "${logfile}_new"
echo "World"

运行此脚本后,文件log.txt_new将包含:

Hello
World

我没想到它会起作用,因为我将文件重命名为stdout被重定向到的位置。它为什么起作用?

如果我MV /重命名包含日志文件的目录也可以。

bash unix stdout file-descriptor io-redirection
1个回答
0
投票

您通过寻址文件inode来写入文件log.txt。它不会更改,因为您的exec命令仍可以访问inode。

© www.soinside.com 2019 - 2024. All rights reserved.