Cd dizinini başka bir terminalin cwd'si ile değiştir


5

Bir önceki pencere / sekmenin bulunduğu dizinde yeni bir terminal açma seçeneğine benzer başka bir terminal penceresinden dizinleri en son değiştirilen dizine değiştirecek bir komut cd -(onu arayalım cdp) gibi bir komut oluşturmak istiyorum. OS OS terminalinde bu seçeneği görmüyorum).

Bunu yapmak için ben değiştirebilir anlamaya cdgibi bir şeyle alias cd='cd $1;echo $PWD > /tmp/CWD'eklemek sonra ve

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

Birisi daha iyi bir çözüm bulabilir mi? Veya beni mevcut bir program, özellik vb. İle doldurun, lütfen bana bildirin. Mac OS X 10.6'da varsayılan terminal ile. Teşekkürler.

Yanıtlar:


4

Diğer adlar parametreleri kabul etmez. Bir işlev kullanmanız gerekecek. commandYerleşikleri de kullanmalısınız .

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

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

Bkz bu O mevcut dizininde geçerli Terminal penceresi veya sekme ile aynı olan yeni bir terminal penceresi veya sekme açılış başlatmak bir senaryo OS X özgü olan başka yaklaşım.


Bu dosya adındaki boşlukları kıracak, değil mi? İhtiyacın olacak cdp='cd "$(</tmp/CWD)'". Veya, cd geçersiz kılma ayarını ln -sf "$PWD" /tmp/CDWve olarak ayarlayın cdp='cd -P /tmp/CWD'. Bu hala tıknazdır ve birden fazla yere CD çoklu terminaliniz olsa bile, yalnızca bir dizin için çalışır. (en son kullanılan terminal değil, en yeni cd kazanır). Mac OS'nin Terminal uygulamasında, gnome-terminalinin yaptığı gibi, şu anda odaklanmış terminaldeki alt işlemle aynı CWD ile yeni sekmeler / pencereler açma seçeneği bulunmuyor.
Peter Cordes

@PeterCordes: Bu ihmali tespit ettiğiniz için teşekkür ederiz.
Dennis Williamson,

Bağlanmak cdyerine PROMPT_COMMAND='pwd > /tmp/"CWD.$USER"'güzel bir fikir. İşime kullanılan superuser.com/questions/874574/...
Peter Cordes

0

Çözümü http://hints.macworld.com/article.php?story=20051231110014263 adresinden daha çok seviyorum :

Geçerli Terminal dizininde yeni xterm pencereleri açın. Yazan: TomP, Oca 04, '06 10:05:12 PM

Biraz daha esnek bir alternatif olarak, çağrıldığı Terminal oturumuyla aynı dizinde yeni bir Terminal penceresi açacak küçük bir kabuk betiğine ("openterminal.sh") sahibim. İşte senaryo:

#!/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

Bunu 'ot' olarak adlandırdım. Bu yüzden, başka bir Terminal penceresini başka bir Terminal penceresiyle aynı dizine açmak istediğimde (mutlaka kullandığım veya açtığım sonuncuyu değil, sadece bu Terminal oturumunda 'ot' diyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.