5

Я хотел бы создать такую команду, как cd - (давайте назовем ее cdp), которая изменит каталоги на последний измененный каталог из другого окна терминала, аналогично опции открытия нового терминала в каталоге, в котором находилось предыдущее окно / вкладка (Я не вижу этой опции в терминале Mac OS X).

Для этого я решил изменить cd с помощью alias cd='cd $1;echo $PWD > /tmp/CWD' а затем добавить

alias cdp='cd  `cat /tmp/CWD`

Может кто-нибудь найти лучшее решение? Или, пожалуйста, сообщите мне о существующей программе, функции и т.д. В Mac OS X 10.6 с терминалом по умолчанию. Благодарю.

2 ответа2

4

Псевдонимы не принимают параметры. Вам придется использовать функцию. Вам также следует использовать встроенную command .

function cd () { command cd "$@"; echo "$PWD" > /tmp/CWD; }

alias cdp='cd "$(</tmp/CWD)"'

Посмотрите это для другого подхода, специфичного для OS X. Это скрипт, который может запускать новое окно терминала или вкладку, открывая ее текущий каталог, такой же, как у текущего окна или вкладки терминала.

0

Мне больше нравится решение по адресу http://hints.macworld.com/article.php?story=20051231110014263 :

Откройте новые окна xterm в текущей директории терминала. Автор: TomP, 04 января '06 22:05:12

В качестве немного более гибкой альтернативы у меня есть небольшой сценарий оболочки ("openterminal.sh"), который откроет новое окно терминала в том же каталоге, что и сеанс терминала, из которого он был вызван. Вот сценарий:

#!/bin/sh
# 
# Open another terminal window for the current directory
#
# Copyright 2004 by Tom Pollard - All rights reserved.
#
#set -x
CWD=`pwd`
osascript<<END
set thePath to "$CWD"
set myPath to (POSIX file thePath as alias)
try
    tell application "Terminal"
        activate
        do script with command "cd \"" & thePath & "\""
    end tell
end try
END

У меня есть это псевдоним "OT". Поэтому, когда я хочу, чтобы другое окно терминала было открыто в том же каталоге, что и другое окно терминала (не обязательно последнее, которое я использовал или открыл, я просто говорю «ot» в этом сеансе терминала).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .