По-перше: припиніть використовувати цей привід зараз . Добре перераховувати його лише для читання, просто переконайтеся, що більше не пишіть. Так, ви видалили фотографії. Вони можуть бути відновлені, але чим більше ви продовжуєте користуватися цим приводом, тим менше шансів у вас є що-небудь відновити.
Ваша команда пробігла mv pic1.jpg pictures
і mv pic2.jpg pictures
т. Д. Кожне виклик mv
вимикає файл, який в даний час називається pictures
іншим зображенням.
Переміщення файлу (в межах однієї файлової системи) означає від'єднання його від каталогу, який містить його, та приєднання його до цільового каталогу під новим іменем. Таким чином, дані файлу не змінювались та не видаляли цією командою, лише записи каталогів, які зникли.
Ви можете запустити інструмент, який шукає вільний простір вашої файлової системи і шукає речі, схожі на jpegs. На щастя, кожен jpeg-файл починається з розпізнаваного заголовка. Інструменти, які шукають видалений вміст, називаються інструментами різьблення . У Ubuntu є декілька, серед яких recoveryjpeg , перш за все , testdisk ,… Якщо фотографії знаходяться на окремому домашньому розділі або на зовнішньому диску, встановіть один або кілька цих пакетів і вкажіть їх на розділ із видаленими зображеннями.
Якщо фотографії знаходяться на вашому системному диску, вам потрібно негайно припинити використання системи. Використовуйте інший комп’ютер, щоб завантажити живий компакт-диск або USB та завантажуватися з цього. Будь-який з живих компакт-дисків, що містять тестдиск, повинен відповідати рахунку, але деякі простіші у використанні, ніж інші. System Rescue CD - хороший системний компакт-диск для порятунку загального призначення. Ubuntu Rescue Remix може бути більш знайомим для користувача Ubuntu.
Для подальшої довідки ввійдіть у звичку використовувати, mv -i
якщо ви не прагнете перезаписати файли. Можливо, у вас вже є псевдонім mv
, але він починається, коли ви вводите mv
безпосередньо в командному рядку, а не тоді, коли mv
викликається сценарієм чи find
командою.
$ : >pictures
$ mv -i foo.jpg pictures
mv: overwrite `pictures'?
Крім того, якщо ви введете /
ім'я, яке повинно бути іменем каталогу, ви отримаєте помилку, якщо каталог не існує, або якщо є файл з таким ім'ям, яке не є каталогом.
$ : >pictures
$ mv foo.jpg pictures/
mv: cannot move `foo.jpg' to `pictures/': Not a directory
$ rm pictures
$ mv foo.jpg pictures/
mv: cannot move `foo.jpg' to `pictures/': Not a directory
Щоб уникнути підводних каменів find
, замість цього можна скористатися функцією рекурсивного переходу каталогу bash. Вам потрібно спочатку ввімкнути його командою shopt -s globstar
(ви можете додати цей рядок до свого ~/.bashrc
. Потім:
mv **/*.jpg pictures/
(Зверніть увагу, що в bash **/
також проходить символічні посилання на каталоги, і немає можливості вимкнути це. Якщо ви хочете рекурсивний обхід, який не переглядає символічні посилання на каталоги, використовуйте zsh або find.)