在目录中,我有一些扩展名为 .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