GNU/Linux >> Linux Esercitazione >  >> Ubuntu

File "sovrascritti", spazio ancora occupato, sono persi?

Così stupido impaziente che ho usato il seguente script sul mio server 19.04 nel tentativo di spostare un mucchio di file video in cartelle con prefissi:

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

Non ho idea di dove sia andato storto, ma invece di spostare i file nelle cartelle è andato a un unico output .. quindi :

----> 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 <----

Per fortuna ho interrotto il processo (CTRL+C) non appena ho notato che non stava andando come previsto e non è passato attraverso l'intera cartella.

Quindi ora ho quei file A e C , che sono meno di un Gb e, a quanto pare, sono un SINGOLO video.

Ci sono 50 Gb non contabilizzati nell'utilizzo totale del disco della cartella stessa, ma lo spazio su disco complessivo del computer è rimasto lo stesso.
Mi fai pensare che i file non vengano eliminati?

Qualsiasi aiuto apprezzato, grazie 🙂

Modifica:i file sono effettivamente spariti, rimane solo l'ultimo file da scrivere, è bastato del tempo per aggiornare le informazioni sull'uso del disco.. morale della storia, esegui i tuoi script su file fittizi prima !

Risposta accettata:

Penso che questo sia il problema:avresti dovuto creare le directory A, B, C ... Z. Se l'hai fatto, il mv comando avrebbe dovuto spostare i file in quelle directory.

Ma in caso contrario, il mv il comando sposta i file in file con quei nomi, A, B, C ... e penso che questo sia quello che hai fatto.

Per rendere più sicuro lo script di shell, dovresti farlo creare le directory (se non sono già presenti) prima di iniziare lo spostamento.

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

Se vuoi che le cose diventino ancora più sicure, puoi anche usare mv con il -i opzione

   -i, --interactive
          prompt before overwrite

Ubuntu
  1. Diff segnala due file differiscono, anche se sono gli stessi!?

  2. Radice che si sta riempiendo anche se dovrebbe avere un po' di spazio?

  3. Concatenare diversi file .mp3 in un unico .mp3?

  4. Dove vengono archiviati i file di traduzione?

  5. Qualcuno sta cercando di hackerare il server? Cosa posso fare?

Trova i file persi con Scalpel

Come liberare spazio su Ubuntu Linux

Gli aggiornamenti di Security.ubuntu.com alla fine vengono uniti in aggiornamenti normali?

Directory .misteriose nella directory principale?

l'eliminazione dei file ma lo spazio su disco è ancora pieno

Perché i file .so sono eseguibili?