关于`... | sudo tee /path/to/some/file > /dev/null`的用途与优势的技术问询
关于
... | sudo tee /path/to/some/file > /dev/null的用途与优势 核心用途
这个命令模式主要用来以root权限写入文件,但生成写入内容的命令本身不需要root权限的场景。
举个实际例子:你用普通用户身份运行echo "新增的配置项",要把结果写到/etc/nginx/nginx.conf这种只有root能修改的系统文件里,直接用echo "..." > /etc/nginx/nginx.conf会因为权限不够报错——因为重定向>是当前普通用户的shell在处理,shell没有权限写这个受保护的文件。但通过echo "..." | sudo tee /etc/nginx/nginx.conf > /dev/null,sudo让tee进程以root身份运行,就能顺利完成写入操作。
和直接重定向... > /path/to/file的优势
- 权限适配:当目标文件需要root权限才能写入时,直接重定向会失败,而
sudo tee能通过提升tee进程的权限完成写入,同时生成内容的命令可以保持普通用户权限运行(避免不必要的root风险)。 - 静默写入:
tee默认会把输入内容同时输出到终端(标准输出),加上> /dev/null就是只完成文件写入,不把内容打印到屏幕上,避免终端被大量输出刷屏。
补充:你划掉的... | sudo cat /path/to/some/file写法是错误的
cat命令的作用是读取文件内容输出到终端,不是写入文件,这个写法根本没法实现把输入内容写到目标文件的目的,完全不具备可比性。
内容的提问来源于stack exchange,提问作者Cigarette Smoking Man
相关产品推荐
相关产品推荐

