perl – 如果磁盘空间不足,如何从shell脚本重写文件而没有截断文
如果磁盘空间不足,如何从
shell脚本重写文件而不会有截断文件的危险?
这个方便的perl one liner在名为test.txt的文件中用“bar”替换所有出现的“foo”: perl -pi -e 's/foo/bar/g' test.txt 这非常有用,但…… 如果test.txt所在的文件系统磁盘空间不足,则test.txt将被截断为零字节文件. 是否有一种简单的,无竞争条件的方法来避免这种截断发生? 我希望test.txt文件保持不变,如果文件系统空间不足,则返回错误的命令. 理想情况下,应该可以从shell脚本中轻松使用该解决方案,而无需安装其他软件(超出“标准”UNIX工具,如sed和perl). 谢谢! 解决方法
从
perldoc perlrun 开始:
转述: >备份文件名由-i-switch的值决定,如果给出的话. 如果系统用完了驱动器空间,那么新文件就会受到威胁,而不是永远不会复制或移动的原始文件(至少在具有类似inode概念的文件系统上). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |