Linux是否可以清空目录中所有文件的内容

问题描述:

是否可以用一个命令(无循环)清除目录中每个文件的内容?Linux是否可以清空目录中所有文件的内容

+2

你为什么想避免循环? – nneonneo 2013-03-16 00:20:01

+1

精心制作的AWK或Bash命令是否会被视为编程问题? – 2013-03-16 00:22:04

+0

我想要一个命令从命令行运行。我敢肯定,有一些方法可以用fine-type f -exec echo“”.....只是不能完成它 – 2013-03-16 00:22:33

使用截断:

truncate -s 0 directory/* &> /dev/null 

这是丑陋的地狱,但它的工作原理:

find . -type f -exec sh -c 'echo -n "" > $1' sh {} \; 

这将明确每个文件中的每个子目录。

如果只想清除当前目录下的文件:

for i in *; do cat /dev/null > $i; done 

(是的,这是一个循环,但它是一条线。)

+0

我发现[this](https://gist.github.com/qaisjp/8871c717ec300d704ae3)对我很好,但是您可能想要将printf输出更改为“” 另外,'echo -n“”'实际上在每个文件中都放了'-n'。 – qaisjp 2014-05-13 01:16:40

+2

'echo -n“”'是不必要的; 1美元就可以了。 – rymo 2016-05-13 02:53:00

+0

美丽! :-D :-p – 2017-04-20 16:33:55