如何通过 sudo 截断 glob 文件?
how to truncate on glob files through sudo?
我需要用 sudo
截断一大堆文件。只有一个有效:
sudo truncate -s 0 /var/lib/docker/containers/1cdd2386de3579-json.log
但是像这样的 glob /var/lib/docker/containers/*/*-json.log
...
$ LANG=C sudo truncate -s 0 /var/lib/docker/containers/*/*-json.log
truncate: cannot open '/var/lib/docker/containers/*/*-json.log' for writing:No such file or directory
在 sudo
的提升权限生效之前(在 sudo
的实际执行之前),在当前用户的 shell 中评估 glob。当前用户可能没有权限访问受影响的路径。
您可以 运行 它在 sh
shell 中,这样 glob 将在 sudo
的 shell:
sudo sh -c 'truncate -s 0 /var/lib/docker/containers/*/*-json.log'
我需要用 sudo
截断一大堆文件。只有一个有效:
sudo truncate -s 0 /var/lib/docker/containers/1cdd2386de3579-json.log
但是像这样的 glob /var/lib/docker/containers/*/*-json.log
...
$ LANG=C sudo truncate -s 0 /var/lib/docker/containers/*/*-json.log
truncate: cannot open '/var/lib/docker/containers/*/*-json.log' for writing:No such file or directory
在 sudo
的提升权限生效之前(在 sudo
的实际执行之前),在当前用户的 shell 中评估 glob。当前用户可能没有权限访问受影响的路径。
您可以 运行 它在 sh
shell 中,这样 glob 将在 sudo
的 shell:
sudo sh -c 'truncate -s 0 /var/lib/docker/containers/*/*-json.log'