откройте файл с помощью CDPATH и символьной ссылки

CVS (Система управления версиями) может заменить определенных "Заполнителей" их значениями на контроль (таким образом, у Вас есть, например, версия контроля или автора в файле).

3
21.08.2012, 01:22
2 ответа

Простой ответ - то, что Вы не можете.

То, что делает CDPATH, - то, что при вводе "папки CD" она сначала проверяет, существует ли "папка" в CDPATH; в противном случае это зарегистрируется в папке, в которой Вы в настоящее время находитесь. Но это специфично для изменений каталога; kwrite не проверяет CDPATH и AFAIK, там не параметр конфигурации заставить его посмотреть в любом определенном каталоге.

То, что Вы могли сделать, должно сделать маленький сценарий оболочки, который заменяет kwrite, как это:

#!/bin/sh

FILE=$1

if [ -f "$HOME/symlinks/$FILE" ] 
then
   kwrite "HOME/symlinks/$FILE"
else
   kwrite "$FILE"
fi

Затем запустите скрипт (который Вы могли назвать, например, "akwrite") вместо того, чтобы выполнить kwrite непосредственно.

5
27.01.2020, 21:17
  • 1
    Благодарит, который работает вполне хорошо, за исключением имен файлов, которые содержат пробелы, где kwrite открывает два новых файла (имена, являющиеся частями прежде и после пространства). –  bug 21.08.2012, 12:15
  • 2
    @user22310 сценарий пропускал двойные кавычки вокруг подстановок переменных, заставляя имена файлов быть разделенным. Всегда помещайте двойные кавычки вокруг подстановок переменных (см. $VAR по сравнению с $ {VAR} и заключить в кавычки или не заключить в кавычки). –  Gilles 'SO- stop being evil' 21.08.2012, 12:41
  • 3
    я начинаю задаваться вопросом, не усложняете ли Вы вещи немного слишком много с Вашим каталогом символьной ссылки. Какова проблема, которую Вы пытаетесь решить при наличии каталога, полного большого количества символьных ссылок? –  Jenny D 21.08.2012, 15:34
  • 4
    я хочу быстро получить доступ к определенным папкам и файлам на оболочке. –  bug 21.08.2012, 16:20
  • 5
    Основная проблема, которую я вижу с этим решением, состоит в том, что Вы рискуете перепутывать вещи путем размышления, что Вы работаете над символьной ссылкой, когда на самом деле Вы работаете над оригиналом, или наоборот. Вы говорили об использовании "mv" - но если Вы переместите символьную ссылку, то оригинал не будет перемещен, Вы просто переименуете символьную ссылку. И Вы привыкаете к не необходимости рассмотреть пути файлов, которые укусят Вас в тендерном месте, когда Вы будете работать над другой системой. Кроме того, что Вы делаете, когда у Вас есть больше чем один файл с тем же именем, но в различных каталогах? –  Jenny D 21.08.2012, 16:58

Вы не можете.

То, что можно сделать, определяют ярлыки как переменные оболочки.

fn=~/path/to/file/filename
kwrite $fn

В zsh можно избежать столкновений имени с переменными оболочки при помощи хешей каталога вместо этого. Это псевдонимы для имен файлов, которые расширены после ~ (как имена пользователей). Несмотря на их имена, эти псевдонимы не должны указывать на каталог, они могут быть расширены до произвольного текста.

hash -d fn=~/path/to/file/filename
kwrite ~fn
0
27.01.2020, 21:17
  • 1
    Спасибо, я использую решение D Jenny на данный момент, но я буду иметь это в виду. –  bug 21.08.2012, 12:18

Теги

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