linux系统清空文件

> file.txt
cat /dev/null > file.txt
echo "" > file.txt
truncate -s 0 file.txt
dd if=/dev/null of=file.txt
Sudo与Shell 重定向清空文件
要能够清空文件,您需要对文件具有写权限。通常您可能会因为权限问题而使用 sudo命令。
但是使用sudo提升权限不适用于重定向操作符>,例如命令sudo : > /var/log/syslog。
你的终端将会打印错误消息bash: /var/log/syslog: Permission denied。

遇到此问题时可以有几种解决方案。第一种是使用sudo和sh命令启动子shell运行命令。
另一种解决方案是将命令的标准输出通过管道传递给tee命令,然后使用sudo将提升权限运行tee命令清空文件。例如命令: | sudo tee filename。
tee命令从标准输入读取内容并同时写入标准输出于一个或多个文件。

sh命令的-c选项允许用户指定要运行的命令,命令将会shell的子进程运行。命令sudo sh -c '> filename'创建shell子进程运行> filename命令。
posted @ 2023-12-08 10:05  左岸丶  阅读(21)  评论(0编辑  收藏  举报