Как найти файлы, на индекс которых не ссылается ни один каталог

Хорошо, некоторое время назад я обнаружил, что, похоже, ошибка в наутилусе.

/tmp$ mkdir test/
/tmp$ mkdir test2/
/tmp$ echo "very important stuff" > test/important-file.txt
/tmp$ ln -s /tmp/test/ test2/test

Если вы попытаетесь mv test2/test ., bash достаточно умен, чтобы ответить:

mv: «test2/test» and «./test» identify the same file

Я создал символическую ссылку для проверки (каталог, содержащий файл) в другом месте, а затем я переместил символическую ссылку в то место, где каталог был

Но затем nautilus попадает в игру:

Moving symbolic link to the location where de directory is in nautilus

Наутилус понимает, что символическая ссылка является каталогом, и он любезно предлагает мне объединить их:

enter image description here

Теперь я слил их (я очевидно думал, что это две разные директории). И в результате ...

tmp$ ls -la
lrwxrwxrwx  1 cool-user  best-group-ever      9 août  26 23:51 test -> /tmp/test

Хорошо. Таким образом, я потерял свой каталог (что является нормальным, потому что я переписал его) и в итоге получил бесполезную круглую символическую ссылку, но ... что случилось с моим important-file.txt? У него был индекс, на который больше не ссылается ни один каталог в моей системе.

1118 Очевидно, я не писал этот инод в пост-ит ... так, где он? Есть ли какой-нибудь способ найти каждый файл с индексом, на который не ссылается ни один каталог?

И в качестве дополнительного вопроса: является ли это особым поведением nautilus или это ошибка?

Почему и как это случилось со мной, это длинная история, но у меня в каталоге были действительно важные (и конфиденциальные) файлы, которые я хотел бы вернуть

5
задан 18 September 2015 в 13:38

2 ответа

Я отправлю свой ответ, но я не принимаю его, так как это, кажется, не значениями хорошее (по крайней мере, с точки зрения эффективности или полноты).

Это потребовало бы программы (я запишу это в C), что рекурсивно обходы все дерево каталогов , регистрирует каждый referencied inode в заказанном списке (избегающий дубликатов), и затем diffs это против фактического списка inode.

различие недостающие файлы

0
ответ дан 18 September 2015 в 23:38
  • 1
    nomodeset вместо тихого всплеска? Также попробованный это. Но если это - " nomodeset подавляют шумы splash" тогда я должен попробовать его – Antonio Kuri 18 November 2016 в 14:44

Не уверенный это возможно. В конце концов, все Ваше Ваше свободное пространство являются списком inodes.

Посмотрите однако функция Orphan File ext4.

0
ответ дан 18 September 2015 в 23:38
  • 1
    Спасибо за ответ так быстро! - I' ll пробуют Ваш метод и сообщают. – Andy 18 November 2016 в 17:39

Другие вопросы по тегам:

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