
Em um diretório tenho alguns arquivos com extensão .dat, quero esvaziar todos esses arquivos sem excluí-los do diretório.
Eu tentei conseguir assim, mas não funcionou
> *.dat
-bash: *.dat: ambiguous redirect
Responder1
Você poderia fazer:
:|tee -- *.dat
Ou o zsh
(com multios
) equivalente:
:>*.dat
Embora isso abra todos os arquivos simultaneamente, você poderá atingir o limite do número máximo de descritores de arquivos abertos se houver um grande número de arquivos.
Responder2
tentar
for x in *.dat
do
> "$x"
done
isso basicamente percorre todos os arquivos, executando um >
neles.
Responder3
Se o seu sistema tiver o truncate
utilitário (do GNU coreutils), você poderia fazer
truncate -s 0 -c -- *.dat
Define -s 0
o tamanho como zero, enquanto -c
evita a criação de um novo arquivo com nome literal *.dat
caso não haja correspondências, se seu shell retornar o não expandido *.dat
nesse caso.