ファイル名のすべての文字を空白1:1に置き換えることを回復する方法は?

ファイル名のすべての文字を空白1:1に置き換えることを回復する方法は?
$ rename 's/./ /g' *

$ ls -l
total 6832616
-rw-r--r-- 1 jboo jboo         0 Sep 28 01:44
-rw-r--r-- 1 jboo jboo  43361681 Sep 28 01:44
-rw-r--r-- 1 jboo jboo  47499946 Sep 28 01:44
-rw-r--r-- 1 jboo jboo  55881060 Sep 28 01:44
-rw-r--r-- 1 jboo jboo  90555631 Sep 28 01:44
-rw-r--r-- 1 jboo jboo  39386207 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 147367671 Sep 28 01:44
-rw-r--r-- 1 jboo jboo  64708219 Sep 28 01:44
-rw-r--r-- 1 jboo jboo  74487434 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 102734315 Sep 28 01:44
-rw-r--r-- 1 jboo jboo  63437787 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 102899063 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 158347478 Sep 28 01:44
-rw-r--r-- 1 jboo jboo  79617708 Sep 28 01:44
-rw-r--r-- 1 jboo jboo  70734588 Sep 28 01:44
-rw-r--r-- 1 jboo jboo  74811527 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 116806547 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 142705146 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 525401910 Sep 28 01:44
-rw-r--r-- 1 jboo jboo  84534720 Sep 28 01:44
-rw-r--r-- 1 jboo jboo  91861219 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 333548107 Sep 28 01:44
-rw-r--r-- 1 jboo jboo  83682222 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 142117082 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 361824861 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 168574047 Sep 28 01:44
-rw-r--r-- 1 jboo jboo  69705069 Sep 28 01:44
-rw-r--r-- 1 jboo jboo  57178994 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 185741017 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 228484548 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 268336818 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 178709785 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 201254796 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 461899931 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 302733730 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 135959214 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 175477963 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 120373878 Sep 28 01:44
-rw-r--r-- 1 jboo jboo  82542816 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 212611146 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 206069847 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 246377910 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 266923675 Sep 28 01:44
-rw-r--r-- 1 jboo jboo 329243380 Sep 28 01:44

ご覧のとおり、ファイルはまだ存在しますが、今は見えません。誰もが名前を変更する方法を知っていますか?

答え1

コメントから推測できるように、すべてのファイル名は空白です。実際には、このプロセスで一部のファイルが失われる可能性があります。

最初のオプションはバックアップを見ることです。ファイルが失われた可能性があるため、バックアップはそのファイルの実際のソリューションです。利用可能なファイルの最新バージョンがある可能性があるため、すべてを上書きしないでください。 Kamil を使用してrename 's/ /n/g' *新しいファイル名を比較します。ちなみに文字数だけ見ることができます!

バックアップがない場合は、次のステップはコマンドですfile。 (おそらく)どのような種類のファイルがあるかを教えてくれます。その後、正しいビューアを使用してファイルの内容を表示する問題があります。実際の名前を再作成する必要があります。

しかし、私が知っている限り、この操作は「元に戻す」ことはできません。

答え2

正確な答えではありませんが、もし役に立つかと思って長文の文のように上げます。

私のシェルではこの動作を確認できませんが、renameシェルとディストリビューションは異なる場合があります。空白を含むファイル名を変更し、見える文字でファイル名を変更したとします。コメントでもあなたがmlocate db

グローバル評価はアルファベット順にこれは、実行時にrename *ファイル名の長さが同じファイルとaファイルに対してb最終bファイルが記録されa失われることを意味します。

これで、上書きされたファイルではなくディレクトリを部分的に復元できますが、残っているファイルの名前を変更することができます。おそらく、これはより良いビューを得るのに役立ちます。

ファイルに名前のリストがあるとしましょう。

> cat files.txt
a
b
c
file1
file2
some_lucky_file

ファイル名の長さでソートし、アルファベット順にソートし、最後に重複エントリを削除して、ファイル名の長さごとに生存者を残すことができます。

awk '{print length($0), $0}' files.txt | sort -nk1 -rk2 | awk '!seen[$1]++'
15 some_lucky_file
5 file2
1 c

既存のファイルでなければなりません。この時点で、名前が変更されたファイルと並べて一覧表示してスキャンできます。たぶんあなたはすでにこれをやっているかもしれません。頑張ってください。

関連情報