como liberar o conteúdo de todos os arquivos com extensão .dat em um diretório?

como liberar o conteúdo de todos os arquivos com extensão .dat em um diretório?

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 truncateutilitário (do GNU coreutils), você poderia fazer

truncate -s 0 -c -- *.dat

Define -s 0o tamanho como zero, enquanto -cevita a criação de um novo arquivo com nome literal *.datcaso não haja correspondências, se seu shell retornar o não expandido *.datnesse caso.

informação relacionada