2016-01-20 1 views
0

Например, когда я нахожусь в директории А, я хочу сделать изменение в файлах в каталоге B, и сохранить изменения в B, единственный способ я знаю, сейчасЕсть ли какой-либо символ bash, который представляет каталог «тот»?

A$ cat B/file |some_changes > B/file2 

Есть ли какие-либо символы, заменяющие B в 'B/file2', , как . означает этот каталог, есть ли какой-либо каталог 'that'? я думаю об этом, когда я получил очень длинный каталог Б. Tks

+4

Нет. Просто используйте переменную, если вам нужно многократно. –

+2

Или вы можете захотеть 'pushd B' & then' popd' ... – anishsane

ответ

2

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

$ cat B/file | some_change > !#:1:h/file2 

Где !# является расширение истории для текущей строки :1 это слово один из расширения и :h является «голова» путь к файлу.

В качестве альтернативы оба предложения в комментариях являются хорошими.

Наконец, вы можете использовать readline/etc. команды, чтобы разрезать путь, а затем снова вставьте его.

Использование meta-b/alt-b для перехода назад к длинному пути, а затем ctrl-w убить (вырезать) слово/путь затем ctrl-y дергать (поместить) его обратно, а затем ctrl-e, чтобы перейти к концу линии и ctrl-y к снова вставьте длинный путь.

Смежные вопросы