如何清空(删除所有内容)目录中的所有文件而不删除文件?

时间:2015-08-18 09:52:18

标签: python linux shell unix

假设我有1000个txt个文件,我必须清空文件中的所有内容,并且只保留1000个没有内容的文件。 我试图在shell中使用cat /dev/null > *.txt,但我得到了 - bash: *.txt: ambiguous redirect并且文件没有清空。有什么建议吗?

4 个答案:

答案 0 :(得分:2)

在Python中你会写

import glob
for filename in glob.glob('*.txt'):
    with open(filename, 'w') as f:
        f.write("")

答案 1 :(得分:0)

在shell中,您可以通过回显空字符串来清空文件:

echo '' > yourfile

答案 2 :(得分:0)

这样一种方法来截断文件:

> file

答案 3 :(得分:-1)

你可以使用bash for循环。

for file in `ls`; do echo "" > $file; done

现在解释不同的部分:

for file in `ls`

这会为目录中的所有文件创建一个for循环,并将每个文件名依次分配给变量$file

do echo "" > $file

这会将空字符串("")输出到每个文件中,覆盖其内容。

done

这结束了for循环。

请注意,这是一个破坏性命令,将清除目录中的每个文件!