GNU/Linux >> Belajar Linux >  >> Ubuntu

File 'menimpa', Ruang Masih Terisi, Apakah Hilang?

Sangat tidak sabar, saya menggunakan skrip berikut di server 19.04 saya dalam upaya untuk memindahkan banyak file video ke dalam folder dengan awalan:

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

Tidak ada petunjuk di mana kesalahannya, tetapi alih-alih memindahkan file ke folder, itu menjadi output tunggal.. jadi :

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

Untungnya saya menghentikan prosesnya (CTRL+C) segera setelah saya menyadari bahwa itu tidak berjalan sebagaimana mestinya dan tidak melewati seluruh folder.

Jadi sekarang saya punya file-file itu A dan C , yang berukuran kurang dari satu Gb, dan terlihat seperti video TUNGGAL.

Ada 50 Gb yang tidak diperhitungkan dalam penggunaan disk total folder itu sendiri, tetapi ruang disk keseluruhan komputer tetap sama.
Membuat saya berpikir bahwa file tidak dihapus?

Setiap bantuan dihargai, terima kasih 🙂

Edit :file-file tersebut benar-benar hilang, hanya file terakhir yang akan ditulis yang tersisa, hanya butuh beberapa waktu untuk memperbarui info penggunaan disk.. moral dari cerita, jalankan skrip Anda pada file tiruan sebelumnya !

Jawaban yang Diterima:

Saya pikir ini masalahnya:Anda seharusnya membuat direktori A, B, C … Z. Jika Anda melakukannya, mv perintah seharusnya memindahkan file ke direktori tersebut.

Tapi jika tidak, mv perintah memindahkan file ke file dengan nama tersebut, A, B, C ... dan saya pikir ini yang Anda lakukan.

Untuk membuat shellscript lebih aman, Anda harus membuatnya membuat direktori (jika belum ada) sebelum Anda mulai memindahkan.

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

Jika Anda ingin semuanya menjadi lebih aman, Anda juga dapat menggunakan mv dengan -i pilihan

   -i, --interactive
          prompt before overwrite

Ubuntu
  1. Diff Reports Dua File Berbeda, Meski Sama!?

  2. Root Mengisi Meskipun Seharusnya Memiliki Beberapa Ruang?

  3. Menggabungkan Beberapa File .mp3 Menjadi Satu .mp3?

  1. Apakah Ada Cara Untuk Mengakses File Berbasis Icloud Dengan Ubuntu?

  2. Di mana File Terjemahan Disimpan?

  3. Apakah Seseorang Mencoba Meretas Ke Server? Apa yang dapat saya?

  1. Ingat File Apa yang Dibuka Dalam Sesi Gedit?

  2. Direktori .misterius Di Direktori Rumah?

  3. menghapus file tetapi ruang disk masih penuh