GNU/Linux >> Linux の 問題 >  >> Ubuntu

「上書きされた」ファイル、スペースはまだ占有されています、それらは失われていますか?

だから、私は19.04サーバーで次のスクリプトを使用して、一連のビデオファイルをプレフィックス付きのフォルダーに移動しようとしました:

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

どこがうまくいかなかったのかはわかりませんが、ファイルをフォルダに移動する代わりに、単一の出力に移動しました。そう:

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

幸運にも、プロセスが意図したとおりに行われず、フォルダ全体を通過しなかったことに気づいたら、すぐにプロセスを停止しました(CTRL + C)。

これで、これらのファイルがAになりました。 およびC 、Gb未満であり、見た目はSINGLEビデオです。

フォルダ自体の合計ディスク使用量には50Gbが含まれていませんが、コンピュータの全体的なディスク容量は同じままです。
ファイルが削除されていないと思わせますか?

助けてくれてありがとう🙂

編集:ファイルは実際になくなり、最後に書き込まれるファイルのみが残ります。ディスク使用情報が更新されるまでに時間がかかりました。話の教訓として、前にモックファイルでスクリプトを実行してください。 !

承認された回答:

これが問題だと思います。ディレクトリA、B、C…Zを作成する必要があります。作成した場合は、mv コマンドはファイルをそれらのディレクトリに移動する必要があります。

ただし、そうでない場合は、mv コマンドは、ファイルをA、B、Cという名前のファイルに移動します…そしてこれがあなたがしたことだと思います。

シェルスクリプトをより安全にするには、移動を開始する前に、ディレクトリを作成する必要があります(まだ存在しない場合)。

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

より安全にしたい場合は、mvを使用することもできます -iを使用 オプション

   -i, --interactive
          prompt before overwrite

Ubuntu
  1. ホームディレクトリにある不思議な.directories?

  2. ファイルを削除していますが、ディスク容量はまだいっぱいです

  3. dd イメージを複数のファイルに分割する

  1. Diffは、2つのファイルが同じであるにもかかわらず、異なると報告します!?

  2. .runファイルとは何ですか?

  3. Ubuntu 12.04でカットアンドペーストした後、いくつかのファイルを失いましたか?

  1. ある程度のスペースが必要ですが、根がいっぱいになっていますか?

  2. 複数の.mp3ファイルを1つの.mp3に連結しますか?

  3. UbuntuでIcloudベースのファイルにアクセスする方法はありますか?