Я хотел бы построить короткую функцию, чтобы сделать следующее. Допустим, я переместил файл file.tex в каталог документов:
mv file.tex ~/Documents
Затем я хотел бы перейти cd
в этот каталог:
cd ~/Documents
Я хотел бы обобщить это для любого каталога, чтобы я мог сделать это:
mv file.tex ~/Documents
follow
и попросите follow
команду прочитать назначение из предыдущей команды, а затем выполнить соответствующим образом. Для простого каталога это не экономит много времени, но при работе с вложенными каталогами было бы здорово иметь возможность просто использовать
mv file.tex ~/Documents/folder1/subfolder1
follow
Я думал, что это будет относительно просто, и что я мог бы сделать что-то вроде этого:
follow()
{
place=`history 2 | sed -n '1p;1q' | rev | cut -d ' ' -f1 | rev`
cd $place
}
но это не похоже на работу. Если я повторяю $place
, я получаю желаемую строку (я проверяю ее ~/Documents
), но последняя команда возвращает
No such file or directory
Каталог, безусловно, существует. Я в растерянности. Не могли бы вы помочь мне?
cd
alt +, .
чтобы заменить последний токен предыдущей команды. Повторите, чтобы вернуться в историю финальных токенов. (Я говорю, что токен не аргумент, потому что foo &
захватывает &
в качестве окончательного токена.) Вы можете использовать числовой аргумент (например, с escape-3 alt +.).
file.tex
в исходном местоположении, символические ссылки являются очень хорошей альтернативой, поскольку вам нужно сделать ссылку только один раз, и тогда она всегда будет указывать на последнюю версию.