Quiero eliminar todos menos uno o más archivos de un directorio.solemos usar rm -rf
Pedido Borrar todos los archivospero el problema es que borra todos los archivos que no queremos hacer.
Podría decir que es tan simple como mover un archivo a una ubicación específica o comprimir un archivo específico y eliminar el resto del archivo. Sí, podemos hacerlo, pero tenemos que ejecutar múltiples comandos, lo cual no quiero y no es óptimo.
Entonces, ¿cómo puedo eliminar todos los archivos del directorio excepto por unoBueno, en este artículo, verá varias formas de eliminar todos sus archivos mientras protege sus archivos importantes.
Hay varias formas de hacerlo, pero en este artículo te mostraré dos de ellas.
Tabla de Contenidos
todo el dia RM comando con negación
Primero, debe habilitar mundial externo Opciones de carcasa.De lo contrario, puede recibir un mensaje de error. «bash: !: Evento no encontrado».
Para habilitar esta función, pase el siguiente comando.
$ shopt -s extglob
Crearemos una lista de nombres de archivos. /usr/share/dict/palabras con fines ilustrativos. Después de eso, eliminaremos todos los archivos excepto «disciplina».
$ mkdir /tmp/sample && cd /tmp/sample
$ xargs -d '\n' touch < /usr/share/dict/words
eliminar todos los archivos excepto «disciplina», Luego pase el siguiente comando.
$ rm -v !(discipline)
$ ls
Output
discipline
- RM: utilidad para eliminar archivos
- Cincos: acción de impresión
- ! (disciplina): Mencione el nombre del archivo que no desea eliminar.
El comando anterior eliminará todos los archivos excepto el nombre de archivo especificado y qué hacer a continuación.Si quiero mantener varios archivos, para esta tarea tienes que usar | Agregue varios nombres de archivo.
Para explicarlo mejor, vea el código a continuación.
$ rm -v !(discipline|zygote|Zulus)
$ ls
Output
discipline Zulus zygote
El comando anterior eliminará todo excepto «Disciplina | Zygote | Zulú«.
puedes usar un comodín comodín El modo guarda varios archivos.En el siguiente ejemplo, me gustaría mantener un «Zw» y elimine el resto del archivo.
$ rm -v !(Zw*)
$ ls
Output
Zwingli "Zwingli's" Zworykin "Zworykin's"
Como tú sabes RM El comando puede ser un desastre, por lo que la mejor y más segura forma de eliminar archivos es usar -Una generación opcionesesta voluntad rápidamente Antes de eliminar cada archivo, puede decidir si desea eliminarlo.
rm -i !(*.txt)
Si quieres mantener un específico posponer documento luego reemplaza .Archivo de texto y ejecuta el siguiente código.
$ rm -v !(*.txt)
$ ls
Output
sample.txt trendoceans.txt
Debería leer: Comprensión de las estadísticas de memoria virtual con vmstat
Use el comando Buscar para conservar archivos específicos y eliminar el resto
En esta sección verás cómo usar Encontrar El comando mantiene archivos específicos y elimina el resto.
La lógica para eliminar archivos es similar al método anterior. Solo la sintaxis es diferente. Entonces, primero, veremos la sintaxis básica y luego pasaremos a los ejemplos.
$ find [PATH] -not -name '[FILE-NAME]' -delete
- [PATH]: suministro: Ruta para ejecutar el siguiente comando.
- -no: Es como una negación, incluso puedes usar !
- -Nombre: especifique un nombre de archivo o patrón.
- -Eliminar: elimina archivos que no sean el nombre especificado.
Ahora sabrá cómo usar la sintaxis anterior con la ayuda de los siguientes comandos. ¿Puedes adivinar la salida?
$ find . -not -name 'discipline' -delete
Sí, se eliminarán todos los archivos excepto disciplina.
Aunque quiero quedarme con todo .pdf y .epub archivos, deben existir en un directorio, el resto debe eliminarse.
$ find . -type f -not \( -name '*.epub' -o -name '*.pdf' \) -delete
El comando anterior es mejor cuando desea conservar varios archivos.
Deberías leer: 20+ Encuentra comandos que puedes usar todos los días
envolver
El comando anterior facilita nuestro trabajo para organizar el directorio de manera adecuada.si estás usando find
Comando con expresiones regulares para eliminar archivos, entonces te recomiendo que uses -Imprimir reemplazar Eliminar Avance.
Comandos de bonificación que puede usar ls, grep, | y xargs Eliminar archivos innecesarios.
$ ls | grep -v '[FILE-NAME]' | xargs rm
Eso es todo hasta ahora.
Un tipo apasionado por la tecnología, exploró algunas tecnologías increíbles y exploró más, y mientras avanzaba, tuve la oportunidad de trabajar en el desarrollo de Android, Linux, AWS, DevOps usando varias herramientas de código abierto.
Uno de mis lemas de vida es «Sé siempre un estudiante de por vida».