Відповіді:
Немає загального "скасування" для кожної операції в терміналі. Якщо ви хочете відновити файл після використання, rmвам потрібно буде переглянути програмне забезпечення для відновлення.
Варіант, щоб запобігти вам майбутніх помилок, - це зробити aliasальтернативні команди для видалення файлів. Додайте їх до своїх ~/.bashrcі отримайте звичку використовувати їх замість rm.
псевдонім rmi = 'rm -i'
Якщо ви користуєтесь rmi, вам буде запропоновано підтвердити майбутні видалення. Намагайтеся уникати розвитку звички натискати yвідразу після того, як ви видасте rmiкоманду, оскільки це переможе мету.
Ви також можете переміщати файли, видалені trshкомандою в терміналі, до свого кошика (у KDE та Gnome):
alias trsh='mv --target-directory="$HOME/.Trash"'
Якщо ви користуєтесь trsh, у вас буде обмежена можливість "відновити". Остерігайся цього
trsh dir1/file1 dir2/file1
все ще може призвести до невідшкодування втрати даних.
rmв rm -iтому, що ви звикаєте до захисної сітки, яку вона вам дає. Потім ви переходите на іншу машину, у якої немає цього псевдоніма ...
rmi-> rm -i. Це дійсно помилка просто перешкоджати існуючій програмі шляхом її отримання.
Для командного рядка немає кошика.
Ви можете спробувати деякі з видалених утиліт, але немає гарантії, що вони працюватимуть.
Ви можете використовувати trash-cli, якщо ви використовуєте KDE під час запуску gui. Це утиліта командного рядка для видалення / відновлення за допомогою сміття KDE.
alias rm=trashтак, щоб у ваших типових викрутках командного рядка були кнопки скасування.
alias rm=trashце потенційно небезпечно, якщо є якийсь шанс ви один день скористаєтеся чужою системою і забудете (або ssh). Набагато безпечніше просто звикати писати trashзамість цього rm.
Ви можете зробити rmпсевдонім для trashкоманди (Вам потрібно буде встановити trashспочатку.) Додайте це до свого ~/.bashrc:
alias rm='trash'
Це бажано, alias rm='mv --target-directory=$HOME/.Trash'оскільки ~ / .Trash НЕ папка для сміття для gnome. Краще IMHO дозволити trashз'ясувати, де знаходиться фактична папка сміття.
btw Я б опублікував це в коментарі, але мені не вистачає представника.
Ще два технічні рішення поки не названі:
Тут є велике питання, на яке варто звернутися. Команди оболонки не балакачі (вони не перевіряють, що ви хочете), і вони очікують, що ви знаєте, що ви робите. Це є основним для того, як вони розроблені . Це особливість, а не помилка.
Деякі люди відчувають себе мачо , коли вони використовують такі команди, які я думаю , це досить безглуздо, але це важливо розуміти небезпеку. Ви можете зробити велику шкоду в терміналі, навіть якщо ви не root. Я думаю, ви, мабуть, справді просто потурбувалися rm, але оскільки ви сказали "Чи можемо ми скасувати операції, виконані в терміналі", я подумав, що це варто сказати. Загальна відповідь - ні, ви не можете.
Варіант 1: Див. Скасувати видалення файлів Linux з файлової системи ext2 . Ця сторінка вказує на програму, написану Себастьяном Хетце з компанії LunetIX, яка (як показує заголовок) скасовує нещодавно видалені файли з файлової системи ext2. Приклад використання:
# undelete -d /dev/hdc3 -a 10
Попередження:
Варіант 2: На моїй машині працює rsnapshot (rsync), що робить знімки щогодини з вибраних папок. Він поступово робить це щогодини, 2 години або все, що ви скажете CRON робити. Після повного дня він переробляє ці знімки в один щоденний знімок і через 7 днів у тиждень тощо. Це змушує мене повертатися в часі приблизно на місяць або близько кожної години! Це досить добре з дисковим простором, оскільки він створює символічні посилання на файли, які ніколи не змінювалися ...
Відновити за допомогою grep on /dev/partition( Linux або Unix Recover видалені файли - відновити файли ),
grep -b 'search-text' /dev/partition > file.txt
Просто спробуйте.
Існують видалені утиліти для ext2, але більшість інших файлових систем Linux застрягли в кам'яному віці і не мають жодних розширених функцій користування. Сумний стан справ, враховуючи гігантські диски з достатньою кількістю місця, щоб більше ніколи не видаляти файл, є звичайною справою.
Таким чином, ви затримали три варіанти:
Регулярно створюйте резервні копії, наприклад, за допомогою команди типу:
rsync -axvRP --backup --backupdir=/backup/incr/$(date -I) /home/ /backup/root/
Використовуйте інструмент контролю версій, наприклад, gitдля всієї вашої роботи. Хоча це не захистить від шаленого, rm -rщо вбиває сховище, він захистить від регулярних неприємностей, оскільки ви будете використовувати git rmне в сирому вигляді rm.
Будьте особливо обережні і не довіряйте занадто багато rm -i, trash-cliі друзів, так як більшість даних , які ви втратите на корпусі ви не втратите від випадкового rm, але неправильно адресованих труби, неправильно набраний вихідних файлів, невірно mvта інше, тобто, то , що буде перезаписувати ваші дані, а не просто видаляти їх.
Зробіть усі три для максимальної безпеки.
перевірте це ... може бути корисним http://artmees.github.io/rm/
припустимо, що ти зробив
rm very_important_file
від терміналу. відновлення цього файлу - копітка і не завжди успішна процедура
замість цього, якщо ви використовували згадуваний сценарій. вам не доведеться турбуватися з цього приводу, тому що
rm very_important_file
mv very_important_file ~/.Trash/
рівнозначні. сценарій обробляє більше випадків і зовсім не змінює вашу систему, rmі це тому, що він поміщений у локальну папку бін користувача, щоб він затіняв систему rm, але все ж не впливав на неї та не вимикав її використання
це вдосконалений підхід, але не втрачаючи жодної функції
Для мене (openuse стрибок 42.2, NTFS pendrive) PhotoRec - також testdiskтворці - працював :) Однак він не відновив імена файлів.
PhotoRec - це програмне забезпечення для відновлення даних, призначене для відновлення втрачених файлів, включаючи відео, документи та архіви з жорстких дисків, компакт-дисків та втрачених фотографій (таким чином, ім'я відновлення фотографій) з пам'яті цифрової камери. PhotoRec ігнорує файлову систему та переходить за основними даними, тому вона все ще працюватиме, навіть якщо файлова система вашого медіа була сильно пошкоджена або переформатована.
Я встановив його за допомогою стандартних сховищ у OpenSUSE
rm: від’єднує файл від ньогоinode. Питання: "Куди йдуть файли, колиrmкоманда видається" -> unix.stackexchange.com/questions/10883/… також може бути корисним для вас.