GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Archivos 'sobrescritos', espacio aún ocupado, ¿se han perdido?

Tan tonto impaciente que usé el siguiente script en mi servidor 19.04 en un intento de mover un montón de archivos de video a carpetas con prefijos:

dirs=(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z)
shopt -s nocasematch

for file in *
do
    for dir in "${dirs[@]}"
    do

     if [ -d "$file" ]; then
      echo 'this is a dir, skipping'
      break
     else
      if [[ $file =~ ^[$dir] ]]; then
       echo "----> $file moves into -> $dir <----"
       mv "$file" "$dir"
       break
      fi
     fi
  done
done

No tengo idea de dónde salió mal, pero en lugar de mover los archivos a las carpetas, fue a una salida singular... así que:

----> a1.ts moves into -> A <----
----> a2.ts moves into -> A <----
----> a3.ts moves into -> A <----
----> a4.ts moves into -> A <----
----> a5.ts moves into -> A <----
----> c1.ts moves into -> C <----
----> c2.ts moves into -> C <----
----> c3.ts moves into -> C <----
----> c4.ts moves into -> C <----
----> c5.ts moves into -> C <----

Por suerte, detuve el proceso (CTRL+C) tan pronto como me di cuenta de que no iba como se esperaba y no revisé toda la carpeta.

Así que ahora tengo esos archivos A y C , que son menos de un Gb, y por lo que parece son un video ÚNICO.

Hay 50 Gb sin contabilizar en el uso total del disco de la carpeta en sí, pero el espacio total en disco de la computadora sigue siendo el mismo.
¿Hacerme pensar que los archivos no se eliminaron?

Cualquier ayuda apreciada, gracias 🙂

Editar:los archivos desaparecieron, solo queda el último archivo que se escribió, todo lo que tomó fue algo de tiempo para que la información de uso del disco se actualizara. moraleja de la historia, ejecute sus scripts en archivos simulados antes !

Respuesta aceptada:

Creo que este es el problema:deberías haber creado los directorios A, B, C... Z. Si lo hiciste, el mv El comando debería haber movido los archivos a esos directorios.

Pero si no, el mv El comando mueve los archivos a archivos con esos nombres, A, B, C... y creo que esto es lo que hiciste.

Para hacer que el shellscript sea más seguro, debe hacer que cree los directorios (si aún no están allí) antes de comenzar a mover.

dirs=(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z)

for dir in "${dirs[@]}"
do
 mkdir -p $dir
done

Si desea que las cosas sean aún más seguras, también puede usar mv con el -i opción

   -i, --interactive
          prompt before overwrite

Ubuntu
  1. Diff informa que dos archivos difieren, ¡aunque son iguales!?

  2. ¿Qué son los archivos .run?

  3. ¿Perdió algunos archivos después de cortar y pegar en Ubuntu 12.04?

  4. ¿La raíz se está llenando aunque debería tener algo de espacio?

  5. ¿Concatenar varios archivos .mp3 en uno solo .mp3?

Encuentra archivos perdidos con Scalpel

Cómo liberar espacio en Ubuntu Linux

¿Alguien está tratando de piratear el servidor? ¿Que puedo hacer?

Directorios misteriosos en el directorio de inicio?

Dividir una imagen dd en varios archivos

¿Por qué los archivos .so son ejecutables?