在一个命令中(无需循环),是否可以清空目录中每个文件的内容?
在一个命令中(无需循环),是否可以清空目录中每个文件的内容?
使用truncate:
truncate -s 0 directory/* &> /dev/null
cat /dev/null
... truncate -s 0 /var/logs/*.log
。 - Jesse Nickles这看起来非常丑,但是它能够正常工作:
find . -type f -exec sh -c 'echo -n "" > $1' sh {} \;
这将清空每个子目录中的所有文件。
如果只想要清空当前目录中的文件:
for i in *; do cat /dev/null > $i; done
(是的,这是一个循环,但只有一行代码。)
echo -n ""
是不必要的;'> $1'
就可以了。 - rymo