如何在多个文件上“echo”> x

如何在多个文件上“echo”> x

在 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

相关内容