Nautilus: посещенный каталог через символическую ссылку, теперь я не могу пройти один уровень в иерархии целевого каталога

Я создал ярлык через опцию «сделать ссылку». Когда я вхожу в папку этого ярлыка, я не вижу никаких папок над ним, поэтому я не могу легко перейти к ним.

Есть ли способ сделать одну папку в графическом интерфейсе? Может быть, горячая клавиша? (Невозможно выполнить cd .. на этот раз ^ __ ^).

В Windows, например, я действительно могу перемещаться так, как я Здесь описывается образ Win10, который объясняет это:

1
задан 21 January 2016 в 12:02

2 ответа

Или для Ubuntu 14.04, nautilus 3.10-1, с добавленным пакетом xdotool, просто используйте следующее в вашем файле .local/share/nautilus/scripts/updirtree:

# In nautilus, the pwd is the actual, not the link path
xdotool key ctrl-l
xdotool type "$(dirname $(pwd))" "
"

Окончательная цитата должна содержать только новую строку или return (0x0a). [F5] изнутри nautilus производит другой результат, чем при запуске из bash / terminal - он возвращает фактический путь, а не путь, используя ссылку.

Я согласен это не имеет смысла, оно недокументировано, и я даже не могу понять, в какой среде выполнения работает код (я не могу найти какую-либо оболочку, которая производит этот результат), но она работает. Это взлом, поэтому я включил версию nautilus. Кто знает, как долго это будет работать? Возможно, это произойдет при следующем обновлении nautilus (или неизвестном интерпретаторе), но для меня он работает с ссылками на смонтированные местоположения, ссылками на места в дереве каталогов или просто в дереве каталогов.

3
ответ дан 23 May 2018 в 14:19
  • 1
    Я использую Ubuntu 15.10 ... Может ли он работать, может быть, в подобном коде? – JohnDoea 18 January 2016 в 20:25
  • 2
    Это не имеет никакого смысла, $(pwd) является рабочим каталогом оболочки , а не nautilus . См. help.ubuntu.com/community/NautilusScriptsHowto – Jacob Vlijm 18 January 2016 в 20:29
  • 3
    @benos Я подтверждаю, что он работает в 15.10 – user.dz 19 January 2016 в 02:52
  • 4
    @JacobVlijm, он работает хорошо, мне кажется разумным, nautilus запускает скрипты в текущем каталоге. – user.dz 19 January 2016 в 02:55
  • 5
    Также @Sneetsher к моему удивлению, он работает. Однако у вас есть проблема с синхронизацией при использовании на очень длинных путях. В зависимости от длины пути вам потребуется установить разрыв. Остальные типизированные пути оказываются сломанными. Сначала я исправил его (произвольный) разрыв. В последней версии я сделал xclip paste путь, который не подлежит длине пути. – Jacob Vlijm 19 January 2016 в 11:07

Чистое исправление, но требуется восстановление исходного кода, возвращая эту фиксацию:

diff --git a/src/nautilus-mime-actions.c b/src/nautilus-mime-actions.c
index ca1f0ac..0b363b4 100644
--- a/src/nautilus-mime-actions.c
+++ b/src/nautilus-mime-actions.c
@@ -2029,21 +2029,13 @@ activate_activation_uris_ready_callback (GList *files_ignore,

    /* Convert the files to the actual activation uri files */
    for (l = parameters->locations; l != NULL; l = l->next) {
-       char *uri = NULL;
-
+       char *uri;
        location = l->data;

        /* We want the file for the activation URI since we care
         * about the attributes for that, not for the original file.
         */
-       if (nautilus_file_is_symbolic_link (location->file)) {
-           uri = nautilus_file_get_symbolic_link_target_uri (location->file);
-       }
-
-       if (uri == NULL) {
-           uri = nautilus_file_get_activation_uri (location->file);
-       }
-
+       uri = nautilus_file_get_activation_uri (location->file);
        if (uri != NULL) {
            launch_location_update_from_uri (location, uri);
        }

Инструкции по сборке:

Источник загрузки:
apt-get source nautilus
Загрузка зависимостей сборки
sudo apt-get build-dep nautilus
изменение из патча Edit src/nautilus-mime-actions.c
/* Convert the files to the actual activation uri files */
for (l = parameters->locations; l != NULL; l = l->next) {
    char *uri = NULL;
    location = l->data;

    /* We want the file for the activation URI since we care
     * about the attributes for that, not for the original file.
     */
    if (nautilus_file_is_symbolic_link (location->file)) {
        uri = nautilus_file_get_symbolic_link_target_uri (location->file);
    }

    if (uri == NULL) {
        uri = nautilus_file_get_activation_uri (location->file);
    }

    if (uri != NULL) {
        launch_location_update_from_uri (location, uri);
    }
Build & amp; установите его
autoreconf
./configure
make
Чтобы протестировать без установки
sudo killall -r "[\w]*nautilus"
./src/nautilus
Чтобы установить его
sudo make install

Это заставит nautilus разрешить ссылки в их целевой путь. Кстати, об этом сообщалось как об ошибке некоторое время назад. Если вы считаете, что это функция, отправьте еще один отчет об ошибке, попросив установить для него переключатель или специальный ярлык.

Ссылка: this commit

2
ответ дан 23 May 2018 в 14:19
  • 1
    Проблема может заключаться в том, что вам нужно либо привязать текущую версию nautilus, либо повторить процедуру после каждого обновления. – Jacob Vlijm 16 January 2016 в 19:41
  • 2
    @JacobVlijm, да, это будет так, если я создам пакет deb. Но я этого не сделал, он будет установлен /usr/local/bin/, поэтому система всегда будет запускать измененную копию, как указано в $PATH – user.dz 16 January 2016 в 19:44

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

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