GNU/Linux >> Tutoriales Linux >  >> Linux

Mover todos los archivos excepto uno

Una forma rápida sería modificar el nombre del archivo tux para que su comando de movimiento no coincida.

Por ejemplo:

mv Tux.png .Tux.png

mv * ~/somefolder

mv .Tux.png Tux.png

Pon lo siguiente en tu .bashrc

shopt -s extglob

Extiende las expresiones regulares. Luego puede mover todos los archivos excepto uno

mv !(fileOne) ~/path/newFolder

Excepciones en relación con otros comandos

Tenga en cuenta que, al copiar directorios, no se puede usar el flash de avance en el nombre como se indica en el hilo ¿Por qué extglob excepto romper excepto condición?:

cp -r !(Backups.backupdb) /home/masi/Documents/

entonces Backups.backupdb/ está mal aquí antes de la negación y no lo usaría ni en mover directorios por el riesgo de usar mal luego globs con otros comandos y posibles otras excepciones.


Si usa bash y tiene el extglob conjunto de opciones de shell (que suele ser el caso):

mv ~/Linux/Old/!(Tux.png) ~/Linux/New/

Iría con la forma tradicional de encontrar y xargs:

find ~/Linux/Old -maxdepth 1 -mindepth 1 -not -name Tux.png -print0 | 
    xargs -0 mv -t ~/Linux/New

-maxdepth 1 hace que no busque recursivamente. Si solo te interesan los archivos, puedes decir -type f . -mindepth 1 hace que no incluya el ~/Linux/Old camino en sí mismo en el resultado. Funciona con cualquier nombre de archivo, incluidos aquellos que contienen saltos de línea incrustados.

Un comentario señala que el mv -t La opción es probablemente una extensión GNU. Para sistemas que no lo tienen

find ~/Linux/Old -maxdepth 1 -mindepth 1 -not -name Tux.png \
    -exec mv '{}' ~/Linux/New \;

Linux
  1. ¿Cómo mover todos los archivos (incluidos los ocultos) de un directorio a otro?

  2. ¿Eliminar todos los archivos excepto en un determinado subdirectorio con Buscar?

  3. ¿Cómo usar el comando 'mv' para mover archivos excepto aquellos en un directorio específico?

  4. Elimine todos los archivos excepto los 3 más nuevos en bash script

  5. ¿Cómo eliminar todos los archivos en un directorio excepto algunos?

¿Cómo mover (y sobrescribir) todos los archivos de un directorio a otro?

Comando para listar todos los archivos excepto . (punto) y .. (punto punto)

¿Cómo mover todos los archivos del directorio actual al directorio superior?

¿Mover un rango de archivos numerados?

Encuentra todos los archivos de más de un minuto

¿Puedes cambiar el permiso a todos los archivos excepto a un directorio en Linux?