通过命令行清空指定文件的内容而不删除

Anonim

如果您在命令行工作并且需要快速清空文件的内容,您可以通过在相关文件名前加上一个大于符号和一个空格来实现。

如何从命令行清除文件内容

在保留文件的同时删除文件内容的技巧如下所示:

> 文件名

该方法适用于 bash 和许多其他 shell,但如果它不适用于 zsh 或其他 shell,您也可以使用 echo 的变体。对于 zsh,使用以下命令使用 echo null 和重定向从命令行清除文件的内容:

echo -n > 文件名

目标文件中的所有内容将在没有警告的情况下立即删除,将其留空,同时保留文件存在性、文件名和权限。这通常比手动删除和重新创建文件更可取且更快。

一个很好的实际例子是清除日志文件的内容,例如:

> ~/Library/Logs/updates.log

或者用echo重定向实现同样的效果:

echo -n > ~/Library/Logs/updates.log

也可以使用该命令在该位置创建一个新的0字节文件,类似于使用touch命令。

如果您想保持给定文件的权限不变但又希望覆盖其内容,您会发现这特别有用,这在日志文件和类似项目中很常见。

通过命令行清空指定文件的内容而不删除