linux bash 重定向与 stdin 和 stdout 相同的文件

标签 linux bash redirect

我有一个关于 bash 的问题,命令如下:

echo helloworld > hello.txt 
cat <hello.txt >hello.txt  

首先,hello.txt中有一些东西。我期望的是,执行命令后 hello.txt 看起来应该没有任何反应,但 hello.txt 中什么也没有。
这是 bash 的一种机制,还是我对 linux 文件描述符有什么不明白的地方?
也许bash只为某个文件建立一个fd?我说得对吗?
你能帮助我吗?

/br

最佳答案

使用临时文件

cat hello.txt > /var/tmp/tmpFile
mv -f /var/tmp/tmpFile hello.txt
cat hello.txt

关于linux bash 重定向与 stdin 和 stdout 相同的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22063718/

相关文章:

PHP 邮件();不通过 ssmtp 发送简单的邮件

c++ - Linux 中用于跨平台应用的 sprint_f 宏

linux - 为什么 shell 输出重定向到随机名称文件?

python - 为什么子进程标准输出到文件的顺序是乱写的?

url - OpenShift - 如何将 $url/$path 重定向到 $url

linux - 比较linux中三个以上文件的内容

c++ - GCC linux 上最好的(即快速且小)是atomic_fetch_ptr 和atomic_set_ptr

linux - 在 bash 脚本 (Linux) 中从 maven POM 读取属性

macos - 可执行 osx 中的错误 cpu 类型

javascript - 请求nodejs模块不支持某些url的重定向