$ 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'srename 's/ /n/g' *
比较新文件名。注意,只能看字符数!
如果您没有备份,下一步就是命令file
。它(可能)会告诉您拥有什么类型的文件。然后就是使用正确的查看器来查看文件内容的问题。您可能需要重新发明实际名称。
但据我所知,此操作无法“撤消”。
答案2
这不完全是一个答案,但就像一个长评论,我将其发布,以防它有帮助。
我无法rename
在我的 shell 中确认这种行为,但可能在 shell 和发行版之间有所不同。我假设您已经用空格重命名了文件,现在您已经用可见字符重命名了它们。我还在评论中看到您设法从mlocate db
.
全局评估是按字母顺序排列的,这意味着rename *
执行时,对于具有相同文件名长度的 filea
和 file 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
这些应该是现有的文件。此时,您可以将它们与重命名的文件并排列出并检查它们。也许你已经这么做了。祝你好运。