Dengan alias, maksud saya pintasan folder dibuat ketika Anda mengklik kanan folder di Finder dan pilih "Make Alias". Saya dapat melintasi link simbolik di Terminal dengan cd
, tetapi tidak bekerja pada alias: bash: cd: example-alias: Not a directory
. Apakah mungkin untuk mengubah direktori ke tujuan alias di Terminal?
9
Jawaban:
Untuk mengaktifkan cd'ing ke folder alias saya telah menemukan yang berikut di Mac OS X Petunjuk .
Kompilasi kode sumber di bawah ini dengan perintah berikut:
Ini akan membuat executable 'getTrueName' di direktori yang sama dengan sumbernya. Anda dapat menambahkannya ke PATH Anda, atau cukup salin langsung ke / usr / bin atau / usr / local / bin sehingga mudah diakses.
Kode sumber C untuk getTrueName (salin teks dan simpan file sebagai getTrueName.c di direktori home Anda):
Sertakan berikut ini di ~ / .bash_profile atau buat file baru ~ / .bash_profile dengan konten berikut:
Anda mungkin harus memulai ulang Terminal untuk memuat .bash_profile Anda yang dimodifikasi.
Diuji dalam Yosemite 10.10.2 & gcc 4.2 (Xcode 6.2) dan berhasil.
Pendekatan serupa tersedia di superuser.com
sumber
Saya belum menguji jawabannya oleh @klanomath, tetapi dulu ada perpustakaan Python untuk mendapatkan target alias, tetapi dukungan Carbon telah dihapus dari kerangka kerja Apple. Ini dapat dilakukan di Objective C, lihat https://stackoverflow.com/a/21151368/838253 .
Taruhan terbaik adalah dengan menggunakan symlink, tetapi sayangnya Finder tidak memungkinkan Anda untuk membuatnya.
Saya telah menulis Layanan OS X yang membuat symlink (yang didukung oleh Finder dan Terminal). Ini menjalankan skrip bash berikut dalam alur kerja Finder. (Sayangnya sepertinya tidak mungkin untuk memposting kode Automator dalam format yang dapat dibaca).
sumber
curFolder
danlinkFile
tidak digunakan jadi mengapa mereka ada di sana? Harus ada ruang di sekitar operator pembanding misalnya$fileExists == ""
dan pertimbangkan untuk menggunakan$(..)
backtick bukan warisanInilah pendapat saya tentang ini.
tambahkan dan muat fungsi ini ke profil Anda.
Memperbarui.
Saya menggunakan
builtin cd
baris yang ditunjukkan pada jawaban @klanomath yang memungkinkan Anda untuk menimpa perintah cd. Jadi sekarang kita dapat menggunakan:cd /path/to/example-alias
atau
cd /path/to/example
Fungsi harus mengembalikan dan cd ke jalur asli alias asli atau jalur normal.
sumber
Sementara tautan simbolik (alias UNIX) terlihat sama dengan Finder alias di dalam Finder, keduanya adalah dua jenis alias yang berbeda.
Tautan simbolis hanya akan menahan jalur yang dipimpinnya dan secara permanen atau sementara akan putus jika sumber daya dipindahkan atau pada drive yang terputus atau berbagi masing-masing.
Alias Finder secara teknis file biasa dengan instruksi untuk Finder. Finder dapat menggunakan informasi ini untuk menemukan file / direktori target yang dipindahkan sampai batas tertentu. Jika sumber daya target alias ada di titik berbagi jaringan yang terpasang, ia juga menyimpan informasi tentang item Keychain yang akan digunakan untuk masuk Anda ke titik berbagi untuk membukanya.
Jadi, kecuali Anda menulis skrip atau program untuk membacakan file alias Finder, itu tidak akan menggunakannya sebagai direktori, tetapi sebagai file di Terminal.
Atau, Anda dapat menghapus alias Finder saat ini dan membuat tautan simbolik sebagai gantinya. Perintahnya adalah
ln -s /path/to/original
membuat tautan simbolik di direktori saat ini. Path bisa berupa path penuh atau relatif.sumber
osascript[9807:7154723] CFURLGetFSRef was passed an URL which has no scheme (the URL will not work with other CFURL routines)
Dengan bantuan tip ini , saya memodifikasi applescript @ markunte untuk menghapus pesan peringatan di atas
sumber
Seperti kebanyakan sistem operasi (selain Windows), OS X mendukung skrip Bash. Pertama-tama buat file di Desktop Anda (atau lokasi apa pun yang Anda inginkan):
sentuh ~ / Desktop / PlexConnect.sh Selanjutnya, atur izin file sedemikian rupa sehingga dapat dieksekusi:
chmod + x ~ / Desktop / PlexConnect.sh Anda kemudian dapat mengedit konten skrip dengan editor teks pilihan Anda, pastikan itu dimulai dengan baris berikut sehingga sistem tahu untuk menjalankannya menggunakan shell (Bash):
! / bin / bash
File kemudian dapat diklik dua kali, meluncurkan Terminal dan menjalankannya.
Namun, solusi yang lebih elegan untuk ini adalah membuat aplikasi AppleScript yang menjalankan perintah untuk Anda. Buka aplikasi "Editor Skrip" dan rekatkan pada yang berikut:
do script script "/Applications/PlexConnect-master/PlexConnect.py" dengan hak administrator Simpan ini sebagai "Aplikasi," beri nama apa pun yang Anda inginkan. Saat membukanya, ia akan memberi Anda prompt kata sandi standar OS X, menjalankan skrip, lalu menutup sendiri.
sumber