Почему Nautilus / Unity падает?

Если копирование выполняется в некотором терминале оболочки (т. е. bash), тогда cp может быть явно сказано скопировать файл, на который указывает ссылка, с --dereference, а не сама ссылка. Поведение cp по умолчанию состоит в том, чтобы скопировать файлы, следуя их ссылкам, но многие графические файловые браузеры, похоже, по умолчанию пытаются копировать ссылки и обычно сохраняют большинство атрибутов.

man cp
-a, --archive
       same as -dR --preserve=all

-d     same as --no-dereference --preserve=links

-L, --dereference
       always follow symbolic links in SOURCE  

Пример

touch SomeFile.txt
echo "some content" > someFile.txt
ln -s -T someFile.txt someLink
echo "Some content for the test file." > someLink
mkdir someDirectory
ln -s -T someDirectory someDirLink

Тот факт, что someLink является ссылкой, показан флагом l в первой позиции вывода листинга (а `d 'обозначает каталог).

ls -l
-a, --archive
       same as -dR --preserve=all

-d     same as --no-dereference --preserve=links

-L, --dereference
       always follow symbolic links in SOURCE  

Файл содержит контент, а ссылка указывает на файл, но может быть использована практически любым способом. файл может быть. (Обратите внимание на размер файла ссылки и размер текстового файла: 32 байта против 12 байтов.)

cat someFile.txt
drwxrwxr-x. 2 user group 4096 Aug 17 17:17 someDirectory lrwxrwxrwx. 1 user group 13 Aug 17 17:17 someDirLink -> someDirectory -rw-rw-r--. 1 user group 32 Aug 17 17:01 someFile.txt lrwxrwxrwx. 1 user group 12 Aug 17 17:12 someLink -> someFile.txt
cat someLink
[d15 ] Some content for the test file.

Сначала скопируйте ссылку на каталог. Затем скопируйте файл в каталог по ссылке. (Ниже также показано, что ссылки на каталоги работают аналогично ссылкам на файлы.):

cp -a someLink someDirLink/newCopy
cp -L someLink someDirectory/newCopy.txt
ll -l someDirLink/
Some content for the test file.

Пример

Связи могут указывать на полный путь или относительный путь. Поскольку в этом примере используется ссылка, основанная на относительном пути цели, находящейся в том же каталоге, что и создаваемая ссылка, ссылка была разбита, когда она была скопирована в новый каталог.

cat someDirLink/newCopy
Some content for the test file.
cat someDirLink/newCopy.txt
lrwxrwxrwx. 1 user group 12 Aug 17 17:12 newCopy -> someFile.txt -rw-rw-r--. 1 user group 32 Aug 17 17:36 newCopy.txt
1
задан 24 December 2013 в 04:58

2 ответа

Я думаю, проблема связана с кэшированными эскизами, которые Nautilus пытается загрузить при открытии этой библиотеки. В 13.10 миниатюры хранятся в ~/.cache/thumbnails, пытаясь опорожнить этот каталог и посмотреть, помогает ли это.

Если он по-прежнему не помогает, то возможно, что плагины naililus не будут нарушены, что связано с конкретным filetype в этой папке. В этом случае загляните в этот каталог и проверьте, есть ли файл, который не находится в других каталогах.

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

2
ответ дан 24 May 2018 в 13:47
  • 1
    Я удалил эскизы с помощью cd ~/.cache/thumbnails, а затем rm -rf *, а затем указал Nautilus на путь, но он все еще разбился. Я попытаюсь переместить файлы где-нибудь еще с помощью терминала, а затем направить туда Наутилус. Это должно доказать, являются ли файлы проблемой. – Torben Gundtofte-Bruun 24 December 2013 в 13:45
  • 2
    После перемещения файлов в другом месте их можно просмотреть. Это не сами файлы ... – Torben Gundtofte-Bruun 24 December 2013 в 14:26
  • 3
    @ TorbenGundtofte-Bruun После перемещения файлов вы можете войти в каталог, где они были раньше? – Seth♦ 25 December 2013 в 04:23

В стартовой панели есть ошибка:

https://bugs.launchpad.net/ubuntu/+source/nautilus-python/+bug/1203349

В основном, файл длиной 0 или поврежденный файл, сидящий в папке, достаточно, чтобы сделать сбои nautilus, когда он пытается создать свою миниатюру.

Самое быстрое решение - открыть терминал и rm path/to/zero-length-file (если вам повезет) или определить и rm path/to/corrupted-file (если вам не повезло).

Кто-то сообщил, что решил проблему, обновив libgtk-3-0_3.8.6 до 3-0_3.8.7, но когда я пишу, что версия libgtk официально не была выпущена для 13.10.

0
ответ дан 24 May 2018 в 13:47

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

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