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

1

Em um diretório eu tenho alguns arquivos com extensão .dat, eu quero esvaziar todos esses arquivos sem excluir esses arquivos do diretório.

Eu tentei conseguir isso assim, mas não funcionou

> *.dat
-bash: *.dat: ambiguous redirect
    
por Beginner 30.09.2016 / 16:28

3 respostas

3

Você poderia fazer:

:|tee -- *.dat

Ou o equivalente zsh (com multios ):

:>*.dat

Embora isso abra todos os arquivos simultaneamente, você pode atingir o limite do número máximo de descritores de arquivos abertos se houver um grande número de arquivos.

    
por 30.09.2016 / 17:54
3

tente

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

isso basicamente faz um loop por todos os arquivos, executando > neles.

    
por 30.09.2016 / 16:31
3

Se o seu sistema possui o utilitário truncate (do GNU coreutils) você poderia fazer

truncate -s 0 -c -- *.dat

O -s 0 define o tamanho como zero, enquanto -c impede a criação de um novo arquivo com o nome literal *.dat no caso de não haver correspondência, se o shell retornar o% não expandido*.dat nesse caso .

    
por 30.09.2016 / 16:35