利用echo ‘’>.out清空out文件,out文件大小1K(会有一个空格和回车)
程序不间断的情况下,继续输出出现乱码,且不显示最新输出内容
截图如下:
利用cp /dev/null nohup.out,out文件大小0K
cat /dev/null > nohup.out
程序不间断的情况下,清空前数据显示乱码,最新输出内容可以显示(部分乱码)
cp /dev/null nohup.out命令运行2次后
程序不间断的情况下,所有输出全部停止了。。。
nohup程序启动时,输出到out的指令改用’>>‘输出追加重定向,而不是’>'输出重定向
清空文件后可以只输出清空后生成的内容
问题解决:
1、如果.out文件出现一个同名文件
其实不是同名文件,ls查看新文件名后面有个?非常奇葩
解决方案详见:Linux文件名后出现问号?
2、原out文件被删除后,创建的新out文件,nohup不往这里输出
不是新的out文件,和问题1是同样的原因
附录:
“echo >”和“echo >>”的区别
echo > 输出重定向
echo >> 输出追加重定向
echo hello A # 将字符串hello A输出到屏幕
echo hello A > tmp.out
# 将字符串输出重定向
# 当前目录没有tmp.out,则创建tmp.out,并将字符串输出到tmp.out文件中
# 当前目录存在tmp.out,则将tmp.out内容替换成输出的字符串
# tmp.out内容:hello B
echo hello C >> tmp.out
# 将字符串输出追加重定向,当前目录存在tmp.txt,则将tmp.txt的内容后面追加输出的字符串
# tmp.txt内容:hello B hello C