¿Cómo vaciar el contenido de todos los archivos con extensión .dat en un directorio?

¿Cómo vaciar el contenido de todos los archivos con extensión .dat en un directorio?

En un directorio tengo algunos archivos con extensión .dat, quiero vaciar todos esos archivos sin eliminarlos del directorio.

Intenté lograrlo así pero no funcionó.

> *.dat
-bash: *.dat: ambiguous redirect

Respuesta1

Podrías hacerlo:

:|tee -- *.dat

O el zsh(con multios) equivalente:

:>*.dat

Sin embargo, debido a que esto abre todos los archivos al mismo tiempo, puede alcanzar el límite en la cantidad máxima de descriptores de archivos abiertos si hay una gran cantidad de archivos.

Respuesta2

intentar

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

Básicamente, esto recorre todos los archivos y realiza un análisis >en ellos.

Respuesta3

Si su sistema tiene la truncateutilidad (de GNU coreutils), podría hacerlo

truncate -s 0 -c -- *.dat

Establece -s 0el tamaño en cero, mientras -cevita la creación de un nuevo archivo con un nombre literal *.daten el caso de que no haya coincidencias, si su shell devuelve el archivo sin expandir *.daten ese caso.

información relacionada