¿Cómo borrar el texto que existía en un archivo de texto sin abrirlo?
Quiero decir, por ejemplo, tengo un archivo hello.txt
con algunos datos de texto, y ¿cómo puedo borrar el texto total en ese archivo sin abrirlo?
Con esto, me refiero a no usar ningún editor como nano, Gedit, etc.
command-line
bash
rɑːdʒɑ
fuente
fuente
Respuestas:
Simplemente abra su terminal con CTRL+ ALT+ Ty escriba como
eso es todo, sus datos en ese archivo se borrarán incluso sin abrirlo.
Ejemplo:
fuente
stdout
sobrescribe el archivo existente, si lo hay. En este caso no hay nada enstdout
. Por lo tanto, el archivo se sobrescribe con vacío, esencialmente borrando datos preventivos, si los hay.La forma más fácil es truncar un archivo es redirigir la salida del comando shell no-op (
:
) al archivo que desea borrar.fuente
>
), pero la más rápida con seguridad ... Me pregunto por qué no se ha mencionado en ninguna de las respuestas de esta pregunta tan vista ... aquí, tome +1 ...También voy a usar la redirección como la respuesta de rajagenupula. Pero hay un poco más de flexibilidad. Abra una terminal y escriba,
Y presiona Ctrl+ C. Eliminará el archivo anterior. Si quieres tanto, está bien.
Si lo desea, puede hacer algo más después de borrar el archivo. De esta manera, no solo puede borrar un archivo sin abrirlo, sino que también puede escribir algunas líneas con el formato adecuado en el archivo. Digamos que desea escribir "Ubuntu es el mejor sistema operativo" después de borrar el archivo, solo haga
Luego presione Ctrl+ C. Ahora el archivo anterior está borrado. Al mismo tiempo, las palabras están en dos líneas como las puse.
Mira el ejemplo:
fuente
>
significa redirección.cat > file
escribirástdout
en el archivo, sobrescribiendo cualquier archivo existente.Tengo que hacer esto todo el tiempo con archivos de registro. La forma más fácil que he encontrado es con el siguiente comando:
Esto elimina todo el contenido del archivo y te deja con un archivo vacío sin tener que abrirlo en un editor, seleccionar texto, ni nada de eso. Más específicamente, lo que hace es reemplazar el contenido del archivo con el contenido de "/ dev / null", o nada. Es bastante hábil, en realidad.
La única advertencia es que el usuario con el que está conectado actualmente debe tener permiso de escritura en dicho archivo.
fuente
Si se creó un archivo con el nombre hello.txt y se le proporcionaron algunos textos, el siguiente comando en terminal ctrl+ alt+ teliminará todo el texto en el archivo hello.txt ,
fuente
Otro enfoque:
cp
el/dev/null
del archivofuente
No es la respuesta más corta pero ...
Esta respuesta se basa en otra de Super User . Aunque no es el comando bash más corto,
truncate
es el más legible para los novatos promedio:Parámetros utilizados con el
truncate
comando aquí:Borrar todo excepto los primeros 10,000 bytes
Una ventaja de
truncate
es que puede especificar cuánto guardar, no solo cero:... truncará todo después de los primeros 10,000 bytes. Esto podría ser útil si un programa se volviera loco y volcara muchos Megabytes de datos en un pequeño archivo de registro:
truncate
comando para un tamaño normal razonablemente mayor de 10Kfuente
Entonces, veo muchas redirecciones que se utilizan para responder esto;)
Un enfoque un poco diferente con el combo: rm & touch
( sí ... ¡otro truco! )
Entonces, con este combo de comando, el archivo hello.txt no se abrió y al final todavía tiene el archivo hello.txt en su lugar con el contenido borrado. Justo como querías!
fuente
funcionó mejor para mí debido al permiso particular que tenía
fuente
vi
y qué hacen los diversos parámetros y argumentos.