Próbowałem to rozgryźć na własną rękę. Oto polecenie, którego użyłem w terminalu:
find . -name "*.jpg" -exec mv {} pictures \;
Najpierw nie utworzyłem katalogu o nazwie zdjęcia. To, co się stało, to plik o nazwie pictures.gif został utworzony. Czy znalazł pliki, a następnie je zastąpił, gdy je przesunął?
Co to jest plik images.gif, który został utworzony w wyniku tego polecenia?
Czy pliki nadal są gdzieś na dysku?
command-line
find
jtnewhou
źródło
źródło
/
do niego! Zawsze! Wtedy może to być tylko katalog.Odpowiedzi:
Po pierwsze: przestań teraz używać tego napędu . Można go zamontować tylko do odczytu, pamiętaj tylko, aby nie pisać. Tak, usunąłeś zdjęcia. Oni mogą być odzyskane, ale tym bardziej zachować przy użyciu tego dysku, tym mniejsze masz szanse na odzyskanie czegokolwiek.
Twój ran polecenia
mv pic1.jpg pictures
,mv pic2.jpg pictures
itp Każde wywołaniemv
zastąpienie pliku obecnie nazwanypictures
przez inny obraz.Przeniesienie pliku (w tym samym systemie plików) oznacza odłączenie go od katalogu, który go zawiera i dołączenie go do katalogu docelowego pod nową nazwą. Tak więc żadne dane pliku nie zostały zmodyfikowane ani usunięte przez to polecenie, tylko wpisy katalogu dla obrazów, które zniknęły.
Możesz uruchomić narzędzie, które przeszukuje wolne miejsce w systemie plików i szuka rzeczy, które wyglądają jak JPEG. Na szczęście każdy plik jpeg zaczyna się od rozpoznawalnego nagłówka. Narzędzia, które szukają usuniętych treści, nazywane są narzędziami do rzeźbienia . Istnieje kilka w Ubuntu, włączając recoverjpeg , naczelne , TestDisk ... Jeśli zdjęcia są na osobnej partycji głównej lub na zewnętrznym dysku, zainstalować jedną lub więcej z tych pakietów i skierować je na partycję z usuniętych zdjęć.
Jeśli zdjęcia znajdują się na dysku systemowym, musisz natychmiast przestać korzystać z systemu. Użyj innego komputera, aby pobrać Live CD lub USB i uruchomić z tego komputera. Każda z żywych płyt CD, które zawierają dysk testowy, powinna pasować do rachunku, ale niektóre są łatwiejsze w użyciu niż inne. System Rescue CD to dobry systemowy system ratunkowy CD. Ubuntu Rescue Remix może być bardziej znany użytkownikowi Ubuntu.
W celu skorzystania z nich w przyszłości, przyzwyczaj się do używania,
mv -i
chyba że chcesz zastąpić pliki. Być może masz już aliasmv
, ale uruchamia się on tylko wtedy, gdy piszeszmv
bezpośrednio w wierszu poleceń, a nie wtedy, gdymv
jest wywoływany przez skrypt lubfind
polecenie.Ponadto, jeśli wstawisz
/
po nazwie, która ma być nazwą katalogu, otrzymasz błąd, jeśli katalog nie istnieje lub jeśli istnieje plik o tej nazwie, który nie jest katalogiem.Aby uniknąć pułapek
find
, możesz zamiast tego użyć rekurencyjnej funkcji przechodzenia przez katalog bash. Musisz go najpierw włączyć poleceniemshopt -s globstar
(możesz dodać ten wiersz do swojego~/.bashrc
. Następnie:(Zauważ, że w bash
**/
również przegląda dowiązania symboliczne do katalogów i nie ma sposobu, aby to wyłączyć. Jeśli chcesz rekurencyjnego przejścia, które nie przegląda dowiązań symbolicznych do katalogów, użyj zsh lub find.)źródło
/
późniejpictures
w drugim zestawie przykładów? Czy nie powinno byćmv foo.jpg pictures/
(z/
) w obumv
poleceniach?Obawiam się, że właśnie zgubiłeś wszystkie swoje zdjęcia w jednym pliku. Możliwe jest odzyskanie niektórych plików za pomocą narzędzi kryminalistycznych, takich jak przede wszystkim, ale wskaźnik sukcesu spada wraz z korzystaniem z nośnika (dysku). (ściślej mówiąc, im dłuższa jest partycja ).
Następnym razem, gdy masz na myśli katalog, dodaj do niego ukośnik i dodaj
-i
opcję prośby o potwierdzenie w przypadku, gdy plik już istnieje:źródło