Не сохранять команду в историю, когда $pwd находится в определенной папке?

Я не думаю, что есть какой-то способ сделать именно то, о чем вы просите. Симлинки — это конструкции файловой системы. Тем не менее, может быть достойный обходной путь, если вы создадите небольшой скрипт, который открывает цель ссылки вместо ссылки :

.

#!/bin/bash

i=0
declare -a targets
for file in "$@"; do
        targets[$i]="$(readlink -f "$file")"
        ((i++))
done
libreoffice "${targets[@]}"

Сохраните это в своем PATH, например, как ~/bin/openLink.shи сделайте его исполняемым:

chmod a+x ~/bin/openLink.sh`

Теперь откройте файловый менеджер (, о котором вы упомянули caja), щелкните правой кнопкой мыши файл .odtи выберите «Открыть с помощью» => «Другое приложение»:

open with dialog

Нажмите «Использовать пользовательскую команду» и поместите туда свой скрипт:

custom command dialog

Наконец, закройте все. Теперь каждый раз, когда вы нажимаете на файл .odt, он будет открываться с использованием этой оболочки, поэтому он должен открывать все ссылки в своем целевом каталоге. Обратите внимание, что readlink -fдля обычного файла просто возвращает имя файла, поэтому это также будет работать для ссылок, отличных от -.

2
06.11.2019, 17:21
1 ответ

Мне кажется, что вы могли бы использовать хук-функцию zshaddhistory, чтобы переопределить поведение по умолчанию «сохранить историю»:

zshaddhistory() {
  case $PWD in
    (*/movies) return 1;;
    (*)        return 0;;
  esac
}

См. man zshmiscописание функции zshaddhistory:

Executed when a history line has been read interactively, but before it is executed. The sole argument is the complete history line (so that any terminating newline will still be present).

If any of the hook functions return a non-zero value the history line will not be saved, although it lingers in the history until the next line is executed allow(ing) you to reuse or edit it immediately.

1
27.01.2020, 22:16

Теги

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