2011-10-12 19:28:12 +0000 2011-10-12 19:28:12 +0000
94
94

Eliminar archivo sin preguntar

¿Cómo puedo eliminar el archivo sin preguntar al usuario si está de acuerdo en eliminarlo? Estoy escribiendo un script de shell y uso la función rm, pero me pide “¿eliminar el archivo regular?” y realmente no necesito esto. Gracias.

Respuestas (12)

107
107
107
2011-10-12 19:30:00 +0000

Puede ser que tengas rm alias de rm -i, así que prueba esto:

/bin/rm -f file.log

Para ver tus alias puedes ejecutar alias.

61
61
61
2011-10-12 19:30:22 +0000

La bandera de fuerza elimina todas las indicaciones;

rm -f {file}

34
34
34
2011-10-12 19:30:10 +0000

Que la fuerza esté contigo - rm -f

6
6
6
2011-10-12 20:52:48 +0000

el programa yes responde repetidamente sí a cualquier pregunta. así que puedes canalizarla al programa interactivo rm para obtener el efecto deseado también.

yes | rm <filename>

por el contrario, si no quieres hacer algo interactivo, puedes hacer

yes n | <something interactive>

y eso repetirá ‘n’ en el flujo de entrada (respondiendo efectivamente no a las preguntas)

5
5
5
2016-07-28 12:15:27 +0000
\rm file

Backslash ` \rm file

Backslash desvía los alias.

5
5
5
2011-10-12 20:13:31 +0000

Dentro de un script de shell, querrías usar rm -f <filename> pero también tienes la opción de deshacerte de la opción implícita -i para tu entorno introduciendo unalias rm en tu shell (o perfil).

5
5
5
2011-10-12 19:31:52 +0000

Si tiene los permisos necesarios para borrar el archivo y no quiere que se le pida, haga lo siguiente (-f = forzar):

rm -f file

Si no tiene permisos para el archivo, tendrá que usar:

sudo rm -f file
1
1
1
2017-03-26 13:45:49 +0000

Aparte de usar el parámetro -f, alternativamente puedes usar el comando find en su lugar, por ejemplo

find -name file.log -delete
0
0
0
2018-03-29 14:28:49 +0000

Si su rm está alienado a rm -i, entonces use unalias rm;

No use rm -f directamente a menos que realmente quiera eliminar muchos archivos protegidos contra escritura. Debe haber una muy buena razón para usar -f.

Sin embargo, si tienes muchos archivos protegidos contra escritura, tal vez prefieras usar rsync -r --delete empty/ removed_dir/ para una mayor velocidad.

0
0
0
2019-09-02 14:37:41 +0000
rm -Rf <folder-to-be-deleted>

-R: Recursivo f: fuerza, no pronta

0
0
0
2015-02-25 12:18:42 +0000

Actualmente estoy trabajando en un sistema, donde el shell bash recibió la definición del comando rm como una función en uno de los archivos de configuración global:

rm () { /bin/rm -i ${1+"$@"}; }

Por lo tanto, ninguna de las respuestas anteriores con respecto a los alias funcionó. Para contrarrestar el molesto comportamiento desajusto la función rm en mi archivo .bashrc

unset -f rm

Tuve un problema similar al del abridor. Sin embargo no encontré ninguna respuesta que mencionara la posibilidad de que rm esté oculta por una función de shell. Así que añadí la respuesta aquí con la esperanza de que fuera de ayuda para alguien que se enfrentara al mismo tipo de problema.

Escribir /bin/rm o rm -f todo el tiempo es un inconveniente, y puede tener malas consecuencias (en el caso de rm -f).

0
0
0
2019-08-12 07:47:40 +0000

Mi forma favorita de hacer esto es simplemente usar el comando command en el bash, de la misma manera que usas sudo. Esto ejecutará tu comando sin alias, igual que si lo ejecutaras con /bin/rm (probablemente rm tiene el alias de rm -i).

Ejemplo:

command rm -f /tmp/file.txt