2013-03-16 60 views
5

是否可以用一個命令(無循環)清除目錄中每個文件的內容?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

回答

6

使用截斷:

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

這是醜陋的地獄,但它的工作原理:

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

相關問題