трюк bash для копирования файлов в ранее посещенный каталог - PullRequest
2 голосов
/ 01 июля 2010

вот сценарий -

вы находитесь в bash

: ~ / dirA $ cd / dirb

: / dirb $ cp filex __here_i_want_trick_to_reference_dirA

Примером подобного трюка является «cd -», который помещает вас в ранее посещенный каталог.

Я хочу этого, потому что в действительности пути, с которыми я имею дело, огромны, и я ищу ярлык.

, более того, трюк, который справляется с этим:

: $ / cd x

: x $ / cd y

и т. д.

: y $ / cp file _ref_to_original_dir_a

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

спасибо

просто обновление - спасибо за ответы.

http://www.hccp.org/modding-cd.html

На этой странице описано, что я выбираю.он просто добавляет псевдоним в смесь для решения pushd.

Ответы [ 5 ]

6 голосов
/ 01 июля 2010

Вы можете попробовать использовать $ OLDPWD.Эта переменная должна содержать путь к последнему каталогу, в котором вы были.

3 голосов
/ 01 июля 2010

Это должно быть действительно легко сделать с pushd и dirs.

Вам просто нужно ввести команду pushd в каталоге, в который вы хотите скопировать свои файлы, и использовать:

cp filex `dirs +1`

Документацию по этим встроенным командам можно найти здесь , а примеры псевдонимов для замены компакт-диска на них здесь .Например:

alias cd='pushd '
alias cd-='popd'
alias cd--='popd -2'
alias cd---='popd -3'
alias d='dirs -v'
alias b='pushd +1'
2 голосов
/ 02 июля 2010

Вы можете использовать ~ - вместо OLDPWD, который расширяется до значения OLDPWD, как описано здесь: http://www.thegeekstuff.com/2010/06/bash-tilde-expansion/. Уменьшение количества нажатий клавиш ...

2 голосов
/ 01 июля 2010

Ну, в моей системе (Ubuntu) есть переменная окружения OLDPWD.

В случае, если она отличается в вашей системе, вы сможете найти ее со следующим

mkdir nonsense_dir
cd nonsense_dir
cd ..
set | grep nonsense_dir

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

О, и вы, вероятно, тоже хотите удалить каталог

rmdir nonsense_dir
0 голосов
/ 01 июля 2010

Вы можете написать свою собственную функцию cd, которая хранит каталог, в который вы cd'ing, затем выполняет фактический CD.Эта переменная будет что-то вроде LAST_CD_DIR.Затем вы можете использовать это в другой вызываемой вами функции, которая выполняет cp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...