GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

„überschriebene“ Dateien, noch belegter Speicherplatz, sind sie verloren?

So dumm, ungeduldig, dass ich das folgende Skript auf meinem 19.04-Server verwendet habe, um zu versuchen, eine Reihe von Videodateien in Ordner mit Präfixen zu verschieben:

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

Keine Ahnung, wo es schief gelaufen ist, aber anstatt die Dateien in Ordner zu verschieben, ging es zu einer einzelnen Ausgabe.. also:

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

Glücklicherweise habe ich den Vorgang gestoppt (STRG+C), sobald ich bemerkte, dass er nicht wie beabsichtigt lief und nicht den gesamten Ordner durchging.

Jetzt habe ich also diese Dateien A und C , die weniger als ein GB groß sind und dem Anschein nach ein EINZELNES Video sind.

In der gesamten Festplattennutzung des Ordners selbst sind 50 GB nicht berücksichtigt, aber der gesamte Festplattenspeicher des Computers ist gleich geblieben.
Lassen Sie mich glauben, dass die Dateien nicht gelöscht werden?

Jede Hilfe ist willkommen, danke 🙂

Bearbeiten:Die Dateien sind tatsächlich weg, nur die letzte zu schreibende Datei bleibt übrig, es dauerte nur einige Zeit, bis die Informationen zur Verwendung der Festplatte aktualisiert wurden. Die Moral der Geschichte, führen Sie Ihre Skripte vorher mit Scheindateien aus !

Akzeptierte Antwort:

Ich denke, das ist das Problem:Sie sollten die Verzeichnisse A, B, C … Z erstellt haben. Wenn ja, die mv Befehl hätte die Dateien in diese Verzeichnisse verschieben sollen.

Aber wenn nicht, die mv Befehl verschiebt die Dateien in Dateien mit diesen Namen, A, B, C … und ich denke, das haben Sie getan.

Um das Shellscript sicherer zu machen, sollten Sie es die Verzeichnisse erstellen lassen (falls sie nicht bereits vorhanden sind), bevor Sie mit dem Verschieben beginnen.

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

Wenn es noch sicherer werden soll, können Sie auch mv verwenden mit dem -i Möglichkeit

   -i, --interactive
          prompt before overwrite

Ubuntu
  1. Diff meldet, dass sich zwei Dateien unterscheiden, obwohl sie gleich sind!?

  2. Was sind .run-Dateien?

  3. Wurzelfüllung, obwohl sie etwas Platz haben sollte?

  4. Mehrere .mp3-Dateien zu einer .mp3 verketten?

  5. Gibt es Möglichkeiten, mit Ubuntu auf Icloud-basierte Dateien zuzugreifen?

Finden Sie verlorene Dateien mit Scalpel

So geben Sie Speicherplatz unter Ubuntu Linux frei

Mysteriöse .directories im Home-Verzeichnis?

Finden Sie heraus, welche Dateien sich in einem Paket in Ubuntu befinden

Dateien werden gelöscht, aber der Speicherplatz ist noch voll

Teilen Sie ein dd-Image in mehrere Dateien auf