Tutoriales

Cómo eliminar todos los archivos excepto un archivo específico de un directorio.

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.

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.

LEER  Baldur's Gate: Dark Alliance II ahora es compatible con Linux

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba