名前変更コマンドは、複数のファイルを削除するようです。復元できますか?

名前変更コマンドは、複数のファイルを削除するようです。復元できますか?

Ubuntu 22.04を使う

複数のファイルを含むフォルダがありますが、ファイル拡張子を変更したいので、次のようにしました。

rename 's/\.zip$/\.cbz/' *.zip

エラーなしでコマンドは完了しましたが、ファイルの3分の2が欠落していることがわかりました。これは角かっこや引用符を含むいくつかのファイルの名前に関連していると考えられていますが、欠落しているファイルの中には非常に単純な名前(comic5.zip)があることがわかり、名前が角かっこで始まるすべてのファイルが見つからないことがわかりました。

photorecを使用してこのファイルを回復しようとしましたが、そのうちの1つが見つかりませんでした。

今はフォルダサイズがはるかに小さくなって削除されたように見えますが、もしそうなら、photorecでは少なくとも一部は回復できないかと思います。私のファイルエクスプローラのみを使用すると、フォルダはコマンドを実行する前に約120 GB、実行後約40 GBでした。残念ながら、コマンドの前に実際のファイル数を見ることはできませんでしたが、スクロールするとファイル数がはるかに少ないことがわかりました。

このファイルに何が起こったのか、回復できるのかを知っている人はいますか?

$ rename -V
/usr/bin/rename using File::Rename version 1.30, File::Rename::Options version 1.10

修正する:

知っていると、photorecのいくつかの以前の設定を変更するのを忘れていました。再実行して欠落しているファイルが見つかりましたが、すべてのファイルが復元されたことがわかります。私はこれがファイルが実際に削除されたことを確認すると思います。まだ何が起こったのかは不明ですが、スティーブンの説明が最も可能性が高いと思います。

とにかく、助けてくれてありがとう。

ベストアンサー1

実行するコマンドを検討してください。

rename 's/\.zip$/\.cbz/' *.zip

これは、globパターンに一致する現在のディレクトリ内のすべてのファイルまたはディレクトリ名最後の4文字をからに変更します。それはすべてです。 Perl 置換式を使用して名前を変更します。*.zip.zip.cbz

また、少なくとも私のシステムでは、ターゲットrename名がすでに存在するプロジェクト(ファイル)の名前を変更することは拒否されます。

touch a.zip a.zap
rename 's/\.zip$/.zap/' *.zip
a.zip not renamed: a.zap already exists

ファイルの約3分の2が欠落していることがわかりました。

あなたが説明する状況では、ファイル(またはディレクトリなど)が消える合理的な+状況は見えません。mvたとえば、上書きする前に完全性チェックを実行しない他のコマンドがあるかもしれません。あなたのことを確認しhistory、それが何を示すかを確認してください


*実際には、通常のファイル、ディレクトリ、デバイス、パイプなど、あらゆる種類のアイテム名を変更します。しかし、私が説明した条件を満たしている場合にのみ可能です。

+ダッシュ(-)またはダブルダッシュ(--)で始まるファイルは常に問題になります。別々の別々のコマンド引数とファイル引数を使用するか、通常の形式ではなく変更され--た形式を使用してファイルモードを保護しない限り、ここでも同様です。たとえば、名前を。./namenamemv -- -a dasha-adash

おすすめ記事