Mandato rm

Propósito

Elimina (elimina el enlace de) archivos o directorios

Sintaxis

rm [  -f ] [  -r ] [  -R ] [  -i ] [  -e ] Archivo ...

Descripción

El mandato rm elimina las entradas del parámetro Archivo de un directorio. Si una entrada es el último enlace a un archivo y, a continuación, se suprime el archivo. Si no tiene permiso de grabación para un archivo y la entrada estándar es un terminal, se le solicita el nombre de archivo y se le pregunta que confirme que desea suprimir el archivo. Si escribe y (sí), el archivo se suprime; si escribe cualquier otro archivo, el archivo no se suprimirá. No es necesario tener permiso de lectura o grabación para el archivo que desea eliminar. No obstante, debe tener permiso de grabación para el directorio que contiene el archivo.

Si el archivo es un enlace simbólico, el enlace se elimina, pero el archivo o directorio al que hace referencia el enlace simbólico permanece. No es necesario que tenga permiso de grabación para suprimir un enlace simbólico, si tiene permiso de grabación en el directorio.

Si uno de los archivos . (punto) o .. (punto, punto) se especifica como porción de nombre de base del parámetro Archivo, el mandato rm graba un mensaje de diagnóstico como error estándar y no hace nada más con estos parámetros.

El mandato rm escribe una solicitud en un error estándar y lee una línea de la entrada estándar si no se especifica el distintivo -f, y el parámetro Archivo no tiene permiso de grabación y la entrada estándar es una estación de trabajo, o se especifica el distintivo -i. Si la respuesta no es afirmativa, el mandato rm no hace nada más con el archivo actual y continúa en el siguiente archivo.

Los archivos que son propiedad de otros usuarios no pueden eliminarse si el bit de tipo sticky del directorio se ha establecido y el directorio no es propiedad del usuario.

Nota:
El mandato rm da soporte al parámetro (guión, guión) como delimitador que indica el final de los distintivos.

Un intento de eliminar un archivo o directorio que se ha exportado para su uso por el servidor NFS versión 4 fallará con un mensaje que indicará que el recurso está ocupado. Debe eliminarse la exportación del archivo o directorio para el uso de NFS versión 4 antes de que pueda eliminarse.

Distintivos

-e Muestra un mensaje después de suprimir cada uno de los archivos.
-f No realiza una solicitud antes de eliminar un archivo protegido contra grabación. No muestra un mensaje de error ni devuelve un estado de error si un archivo concreto no existe. Si se especifican los distintivos -f y -i, entra en vigor el último que se haya especificado.
-i Le envía una solicitud antes de suprimir cada archivo. Cuando se utilizan los distintivos -i y -r conjuntamente, el mandato rm también envía una solicitud antes de suprimir los directorios. Si se especifican los distintivos -i y -f, entra en vigor el último que se haya especificado.

-r Permite la eliminación repetida de directorios y sus contenidos cuando el parámetro Archivo es un directorio. Este distintivo es equivalente al distintivo -R.
-R Permite la eliminación repetida de directorios y sus contenidos cuando el parámetro Archivo es un directorio. Este distintivo es equivalente al distintivo -r.

Estado de salida

Este mandato devuelve los valores de salida siguientes:

0 Si no se ha especificado el distintivo -f, se eliminaron todas las entradas de directorio indicadas; en caso contrario, se eliminaron todas las entradas de directorio indicadas existentes.
>0 Se ha producido un error.

Ejemplos

  1. Para suprimir un archivo, entre:

    rm myfile

    Si hay otro enlace a este archivo, el archivo conserva ese nombre, pero se elimina el nombre myfile. Si myfile es el único enlace, se suprime el propio archivo.

  2. Para suprimir un archivo sin recibir antes una solicitud de confirmación, entre:
    rm  -f core
    No se emite ninguna solicitud de confirmación antes de que el mandato rm -f intente eliminar el archivo denominado core. No obstante, se muestra un mensaje de error si el archivo core está protegido contra grabación y el usuario no es propietario del archivo o carece de autorización root. No se muestra ningún mensaje de error cuando el mandato rm -f intenta eliminar archivos inexistentes.
  3. Para suprimir archivos uno a uno, entre:
    rm  -i mydir/*
    Después de que se visualice cada nombre de archivo, entre y para suprimir el archivo o pulse la tecla Intro para conservarlo.
  4. Para suprimir un árbol de directorio, entre:
    rm -ir manual
    Este mandato elimina repetidamente el contenido de todos los subdirectorios del directorio manual, enviando una solicitud respecto a la eliminación de cada archivo y, a continuación, elimina el propio directorio manual, por ejemplo:

    You:  rm -ir manual
    System: rm: Select files in directory manual? Enter y for yes.
    You:  y
    System: rm: Select files in directory manual/draft1? Enter y for yes.
    You:  y
    System: rm: Remove manual/draft1?
    You:  y
    System: rm: Remove manual/draft1/chapter1?
    You:  y
    System: rm: Remove manual/draft1/chapter2?
    You:  y
    System: rm: Select files in directory manual/draft2? Enter y for yes.
    You:  y
    System: rm: Remove manual/draft2?
    You:  y
    System: rm: Remove manual?
    You:  y

    En este caso, el mandato rm solicita primero si desea buscar en el directorio manual. Dado que el directorio manual contiene directorios, el mandato rm solicita permiso a continuación para buscar archivos que suprimir en manual/draft1 y luego pregunta si desea suprimir los archivos manual/draft1/chapter1 y manual/draft1/chapter2. A continuación, el mandato rm solicita permiso para buscar en el directorio manual/draft2. Luego solicita permiso para suprimir los directorios manual/draft1, manual/draft2 y manual.

    Si deniega el permiso para eliminar un subdirectorio (por ejemplo, manual/draft2), el mandato rm no eliminará el directorio manual. En su lugar, verá el mensaje: rm: Directory manual not empty.

Archivos

/usr/bin/rm Contiene el mandato rm.

Enviar comentarios |  Valorar esta página