Как восстановиться после замены всех символов в моих именах файлов 1 :1 пробелами?

Если вы используете lightdm, dm-tool lock.

2
28.09.2020, 12:37
2 ответа

Как вы уже догадались из комментариев, все ваши имена файлов теперь состоят из пробелов. Возможно, вы действительно потеряли несколько файлов в процессе.

Первый вариант — просмотреть свои резервные копии. Поскольку вы, возможно, потеряли файлы, для этих файлов ваша резервная копия является реальным решением. Могут быть доступны более новые версии файлов, поэтому не перезаписывайте все подряд. Используйте rename 's/ /n/g' *Камила, чтобы сравнить новое имя файла. Обратите внимание, что вы можете смотреть только на количество символов!

Если вы не делали резервные копии, следующая остановка — команда file. Он (возможно )скажет вам, какой у вас файл. Тогда это вопрос использования правильного просмотра, чтобы увидеть, что такое содержимое файла. Возможно, вам придется заново -придумать настоящее имя.

Но насколько мне известно, это действие нельзя отменить.

1
18.03.2021, 23:01

Это не совсем ответ, а длинный комментарий, и я публикую его на случай, если он будет полезен.

Я не могу подтвердить такое поведение 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

Это должны быть существующие файлы. На этом этапе вы можете перечислить их рядом с переименованными файлами и проверить их. Возможно, вы уже сделали это. Удачи.

1
18.03.2021, 23:01

Теги

Похожие вопросы