
在目錄中,我有一些擴展名為 .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