ฉันสามารถคิดถึงวิธีที่แตกต่างกันสามวิธีในการทำ (สองวิธีแรกถูกขโมยจากที่อื่น แต่ฉันลืมที่) ฉันใช้อันที่สามซึ่งเรียกเชลล์สคริปต์จาก applescript เพราะฉันต้องการเปิดหน้าต่างใหม่ทุกครั้งและเพราะมันสั้นที่สุด
ต่างจากสคริปต์ที่สร้างขึ้นใน OS X ตั้งแต่อย่างน้อย 10.10 ทั้งหมดเหล่านี้เปิดเทอร์มินัลในไดเรกทอรีใด ๆ ที่เป็นไดเรกทอรีการทำงานปัจจุบันในหน้าต่างค้นหาของคุณ (เช่นคุณไม่จำเป็นต้องมีโฟลเดอร์ที่เลือกเพื่อเปิด)
นอกจากนี้ยังมีฟังก์ชั่นการทุบตีสองอย่างเพื่อทำให้ Finder> Terminal> Finder วงกลมสมบูรณ์
1. ใช้แท็บที่มีอยู่ซ้ำหรือสร้างหน้าต่างเทอร์มินัลใหม่:
tell application "Finder" to set myDir to POSIX path of (insertion location as alias)
tell application "Terminal"
if (exists window 1) and not busy of window 1 then
do script "cd " & quoted form of myDir in window 1
else
do script "cd " & quoted form of myDir
end if
activate
end tell
2. ใช้แท็บที่มีอยู่ซ้ำหรือสร้างแท็บ Terminal ใหม่:
tell application "Finder" to set myDir to POSIX path of (insertion location as alias)
tell application "Terminal"
if not (exists window 1) then reopen
activate
if busy of window 1 then
tell application "System Events" to keystroke "t" using command down
end if
do script "cd " & quoted form of myDir in window 1
end tell
3. สร้างหน้าต่างใหม่ทุกครั้งผ่านเชลล์สคริปต์ที่เรียกว่าจาก applescript
tell application "Finder"
set myDir to POSIX path of (insertion location as alias)
do shell script "open -a \"Terminal\" " & quoted form of myDir
end tell
4. (โบนัส) ทุบตีนามแฝงเพื่อเปิดหน้าต่างค้นหาใหม่สำหรับไดเรกทอรีการทำงานปัจจุบันในเทอร์มินัลของคุณ
เพิ่มชื่อแทนนี้ใน. bash_profile ของคุณ
alias f='open -a Finder ./'
5. (โบนัส) เปลี่ยนไดเรกทอรีในหน้าต่างเทอร์มินัลของคุณไปยังเส้นทางของหน้าต่างค้นหาด้านหน้า
เพิ่มฟังก์ชันนี้ใน. bash_profile ของคุณ
cdf() {
target=`osascript -e 'tell application "Finder" to if (count of Finder windows) > 0 then get POSIX path of (target of front Finder window as text)'`
if [ "$target" != "" ]; then
cd "$target"; pwd
else
echo 'No Finder window found' >&2
fi
}