在 bash 中清空一堆文件的最佳方法是什么?到目前为止,我一直这样做
echo "" > development.log
echo "" > production.log
我真的不想删除这些文件,所以这rm
是不可能的。我试过很多方法,比如
echo "" > *.log
但没有任何效果。
答案1
你不需要回声。只要
>filename
将清空文件。要编辑 rassie...
for FILE in *.log
do
>"${FILE}"
done
最好使用引号和括号,因为它们可以正确处理带有空格或特殊字符的文件。
答案2
只是为了好玩,另一种变化是将 Eric Dennis 的find
重定向与其他人的重定向结合起来:
find . -name "*.log" -exec sh -c ">{}" \;
答案3
for i in *.log; do > $i; done
请注意,如果您确实希望清空文件,则必须使用完全没有回音,参见上文,或者传递 -n 标志(回显-n)
答案4
循环可以执行以下操作:
for i in *.log; do echo "" > $i; done