Saltar al contenido

¿Diferencia entre ‘buscar -eliminar’ y ‘rm -rf’?

Alfredo, parte de nuestro equipo de trabajo, nos ha hecho el favor de escribir este artículo porque domina muy bien este tema.

Solución:

find . -name abd.txt -delete intenta eliminar todos los archivos nombrados abd.txt que están en algún lugar del árbol de directorios de .

find . -wholename abd.txt -delete intenta eliminar todos los archivos con un nombre de ruta completo de abd.txt en algún lugar del árbol de directorios de .

Tales archivos nunca existirán: al usar find .todas las rutas completas de los archivos encontrados comenzarán con ./por lo que incluso un archivo en el directorio actual llamado abd.txt tendrá camino ./abd.txty no coincidirá.

find . -wholename ./abd.txt -deletevoluntad eliminar el archivo en el directorio actual llamado abd.txt.

find -wholename ./abd.txt -delete hará lo mismo.

La eliminación fallará si abd.txt es un directorio no vacío.

(Acabo de probar lo anterior con GNU find 4.6.0; otras versiones pueden comportarse de manera diferente).

rm -rf abd.txt también trata de eliminar abd.txt en el directorio actual, y si no es un directorio vacío, lo eliminará junto con todo lo que contiene.

para hacer esto con findpodrías usar

find . -depth ( -wholename ./abd.txt -o -wholename ./abd.txt/* ) -delete

Tiempo find -wholename GLOBPATTERN intenta hacer coincidir cada archivo debajo del directorio actual (independientemente de la profundidad), el globo que usó con el rm El comando solo se compara con archivos que son directamente (profundidad 1) en el directorio actual.

Por cierto. no necesitas el -r cambiar a rm a menos que desee eliminar recursivamente un directorio (debido a la .txt extensión, supongo que solo desea eliminar archivos normales)

find usado con -deletebusca los archivos y los elimina. Find El comando toma la ruta para buscar los archivos y luego el -delete flag elimina los archivos que se encuentran en esa ruta dada. Entonces, puedes decir que encontrar es más una borrado selectivo

Mientras rm -rf El comando elimina archivos/directorios recursivamente sin importar qué. Significa rm eliminará todos los archivos y directorios en la ruta específica. -r significa recursividad y -f es forzar la eliminación. Asi que, rm junto con -rf seguirá eliminando los directorios y archivos dentro de los directorios en la ruta de destino hasta que no encuentre más.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *