如何刷新目录中所有扩展名为.dat的文件的内容?

如何刷新目录中所有扩展名为.dat的文件的内容?

在目录中,我有一些扩展名为 .dat 的文件,我想清空所有此类文件,而不从目录中删除这些文件。

我试图像这样实现它,但没有成功

> *.dat
-bash: *.dat: ambiguous redirect

答案1

你可以这样做:

:|tee -- *.dat

或者zsh(与multios)等效:

:>*.dat

不过,由于这会同时打开所有文件,因此如果有大量文件,您可能会达到打开文件描述符的最大数量限制。

答案2

尝试

for x in *.dat
do
    > "$x"
done

这基本上循环遍历所有文件,>对它们执行 a 。

答案3

如果您的系统有该truncate实用程序(来自 GNU coreutils),您可以这样做

truncate -s 0 -c -- *.dat

-s 0大小设置为零,同时防止在没有匹配项的情况下-c创建具有文字名称的新文件(如果您的 shell在这种情况下返回未展开的文件)。*.dat*.dat

相关内容