urxvt Открыть новую вкладку с тем же текущим каталогом, что и текущая вкладка

Исходный код для finger, используемый в Ubuntu , указывает, что он не будет читать не -обычный файл ~/.plan (, например. символическая ссылка, как у вас ). См. последнюю if... return 0строку:

static int
show_text(const char *directory, const char *file_name, const char *header)
{
    int ch, lastc = 0, fd;
    FILE *fp;
    struct stat sbuf1, sbuf2;

    snprintf(tbuf, TBUFLEN, "%s/%s", directory, file_name);

    if (lstat(tbuf, &sbuf1) || !S_ISREG(sbuf1.st_mode)) return 0;

Функция show _text вызывается для отображения содержимого различных файлов, включая.plan.

Чтобы ваш файл был виден через finger, сделайте .planобычным файлом, а не символической ссылкой.

7
30.03.2016, 21:14
1 ответ

Во-первых, вы можете заменить встроенную функцию cdфункцией, которая сохраняет текущий каталог каждый раз, когда вы меняете каталог.

cd() {
    command cd $@
    pwd > ~/.curdir
}

Затем вы можете переходить в этот последний известный каталог в каждой новой оболочке, которую вы открываете:

command cd `cat ~/.curdir`

Если вы поместите оба этих фрагмента в свой ~/.bashrc, каждая новая оболочка, которую вы открываете, будет иметь переопределенную команду cdи попытается перейти в последний известный каталог:

#!/bin/bash

cd() {
    command cd $@
    pwd > ~/.curdir
}

command cd `cat ~/.curdir`

Обратите внимание, что я использовал встроенную команду commandдля получения доступа к исходной команде cdвместо функции с именем cd(). Также обратите внимание, что это, вероятно, будет иметь непреднамеренные побочные эффекты, особенно когда у вас одновременно открыто несколько оболочек (, в чем и заключается весь смысл использования вкладок urxvt).

1
23.11.2020, 14:17

Теги

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