Cara termudah, bawaan untuk melakukan ini adalah dengan hanya menyeret item dari Finder ke jendela Terminal . Saat Anda menjatuhkannya, Terminal akan "mengetikkan" nama path mereka (lolos). Anda kemudian dapat menggunakan pengeditan baris perintah shell Anda untuk memasukkan sisa perintah. Atau jika Anda berpikir ke depan, Anda dapat mengetikkan perintah terlebih dahulu lalu seret item.
Versi "seret dulu":
- Pilih dan seret beberapa item Finder ke jendela Terminal yang menampilkan prompt shell. Terminal akan memasukkan nama path (lolos).
- Ketik Control+ A(pergi ke awal baris; ⌃A adalah default, tetapi bervariasi berdasarkan shell / konfigurasi).
- Ketikkan perintah dan spasi Anda (akan dimasukkan sebelum nama path).
Versi "berpikir ke depan":
- Dalam urutan apa pun, lakukan keduanya:
- Di jendela Terminal , ketikkan bagian awal dari perintah dan spasi Anda (semuanya kecuali nama path).
- Pilih beberapa item di Finder .
- Seret item yang dipilih dari Finder ke jendela Terminal tempat Anda mengetik perintah.
- Aktifkan jendela Terminal dan tekan Return.
Anda dapat (seperti jawaban lain telah mengindikasikan) beralih ke AppleScript atau Automator jika Anda membutuhkan lebih banyak solusi yang lebih otomatis. Karena “komponen bergerak” tambahan dapat menambah kompleksitas pada solusi, Anda harus mempertimbangkan manfaat dari proses di atas (manual, tetapi fleksibel) terhadap kompleksitas penerapan satu atau lebih dari solusi otomatis.
Beberapa kemungkinan otomatisasi meliputi:
- aplikasi tetesan AppleScript
- program AppleScript sederhana yang diluncurkan oleh menu skrip bawaan atau peluncur lainnya
- dapatkan nama path dari pilihan Finder
- alur kerja Automator, aplikasi, atau plug-in Finder
.command
file yang dapat dieksekusi (biasanya skrip shell; buka di Finder untuk menjalankannya di Terminal )
- dapatkan nama path dari pilihan Finder (via osascript )
- beberapa alat pihak ketiga yang sudah menyediakan fungsionalitas yang Anda butuhkan
Layanan adalah bagaimana osx menangani hal semacam ini.
Di bawah Menu Aplikasi (dalam hal ini 'Finder') selalu ada (hampir)
Services
opsi menu yang akan menyediakan Layanan yang berlaku untuk Aplikasi saat ini dan keadaan saat ini. Biasanya keadaan adalah jenis objek apa yang dipilih (teks, file / folder, dll).Mereka dapat diaktifkan, dinonaktifkan, dan ditetapkan pintasan keyboard di panel System Preferences yang hanya masuk akal untuk yang terakhir dari ketiga
Keyboard
,.Untuk membuat Layanan yang menerapkan skrip shell ke file / folder di Finder:
Luncurkan automator dan buat
Service
dokumen tipe baru .files or folders
)Get Selected Finder Items
tindakan.Run Shell Script
Seharusnya terlihat seperti ini:
automator akan secara otomatis menempatkannya di
~/Library/Services
folder Anda ketika Anda menyimpan yang akan membuatnya tersedia (hampir) segera melaluiApplication -> Services
menu, atau menu kontekstual (klik kanan).sumber
Di Mac OS X, bahasa skrip yang disukai adalah Applescript. Anda dapat membuat tetesan (skrip yang akan melakukan sesuatu ketika Anda menjatuhkan beberapa file di atas ikonnya), menempatkan ikon skrip (yang dapat disimpan sebagai aplikasi) di atas desktop, dan seret dan taruh file yang ingin Anda sampaikan ke naskah.
Sebagai alternatif, Anda dapat menggunakan tindakan folder. Dimungkinkan untuk mengaitkan skrip Applescript ke folder yang akan dieksekusi setiap kali beberapa file (atau direktori) dilemparkan ke folder.
sumber
Saya sudah ingin melakukan itu juga, namun tidak seperti solusi di atas, saya ingin menghasilkan parameter yang dikutip untuk skrip shell. Metode-metode lain baik-baik saja, tetapi mereka seperti menyarankan "hanya perintah-v ke terminal" ketika apa yang Anda inginkan sebenarnya
pbpaste
.Saya ingin membuat fungsi shell yang dapat saya gunakan dalam skrip yang diperluas ke parameter file untuk setiap pilihan Finder. Saya menggunakan cangkang ikan dan ini sepertinya bekerja:
Digunakan (lagi di kulit ikan) seperti
convert-video (selection)
.Dalam fungsi bash, mungkin perlu mengutip output dengan sesuatu seperti
| tr '\n' '\0' | xargs -0 printf "%q" {}
pada akhir perintah osascript itu, tidak yakin.(catatan: semua yang saya tahu tentang skrip applescript & shell tingkat lanjut saya pelajari kembali dalam 2 jam terakhir dan akan dilupakan besok)
sumber
Berdasarkan jawaban di atas, saya membangun benda ini
https://github.com/commonpike/DropShell
Pada dasarnya aplikasi applescript yang memanggil shellfile terletak di aplikasi dengan file yang dijatuhkan sebagai argumen. Anda dapat memodifikasi skrip shell sesuai kebutuhan.
sumber
Berdasarkan jawaban commonpike, saya telah membuat AppleScript, yang mengalihkan semua file yang jatuh ke dalamnya, ke skrip shell dengan nama yang cocok. Cukup simpan sebagai aplikasi dari dalam ScriptEditor Apple dan ganti nama menjadi script.app untuk mencocokkan script.sh Anda https://github.com/PHolker/scripts/blob/master/DropScript.scpt
sumber