Mengapa ikon folder di Terminal saya memiliki tanda tanya yang dilapis?

16

Dari waktu ke waktu, saya melihat bahwa ikon folder di batang judul salah satu jendela Terminal saya memiliki tanda tanya yang dilapis di atasnya, misalnya yang ini:

masukkan deskripsi gambar di sini

Apa artinya ini? Tampaknya tidak memiliki efek atau masalah yang saya perhatikan - saya hanya ingin tahu.

Saya menggunakan OS X 10.8 (Mountain Lion).

Andrew Ferrier
sumber

Jawaban:

18

Tanda tanya (dan item menu sembulan yang dinonaktifkan) menunjukkan bahwa Terminal menganggap direktori kerja ada di komputer jarak jauh, dan karenanya Anda tidak dapat menavigasi ke sana di Finder menggunakan menu sembulan. Jika Anda melihat item terakhir di menu popup (Command-Click pada ikon "proxy") Anda akan melihat komputer / host yang Terminal anggap direktori kerja aktif. Anda harus menemukan bahwa itu bukan nama komputer saat ini.

Jika Anda menggunakan bash (shell default pada macOS), secara default ia akan mengirimkan urutan kontrol ke terminal di setiap prompt untuk memberi tahu Terminal direktori kerja saat ini. Karena urutan kontrol dapat berasal dari komputer lokal atau jarak jauh, ia mengirimkan URL skema “file:” termasuk nama host, dan Terminal memverifikasi bahwa nama tersebut dipetakan ke mesin saat ini. Jika tidak, Terminal menonaktifkan item menu popup path, karena mereka tidak sesuai dengan direktori lokal.

Anda dapat melihat kode yang mengirimkan urutan kontrol di /etc/bashrc_Apple_Terminal(atau /etc/bashrcpada versi macOS yang lebih lama).

[Perhatikan bahwa jika Anda tidak menggunakan bash, atau Anda telah menyesuaikannya sehingga perilaku default tidak terjadi, tetapi shell Anda (atau beberapa program lain yang sedang Anda jalankan) mengirim urutan kontrol untuk mengatur jendela atau tab ( icon) title, Terminal akan memeriksanya untuk melihat apakah itu berisi apa yang tampak seperti nama path, dan kemudian memeriksa apakah itu sesuai dengan nama path lokal yang valid. Jika tidak, itu tidak menampilkan ikon proksi jendela sama sekali.]

Skenario di mana Terminal dapat gagal mengenali bahwa "file:" URL ada di host saat ini adalah jika Anda mengubah konfigurasi jaringan Anda saat shell sedang berjalan. Kasus umum adalah meletakkan komputer portabel ke mode tidur dan pindah ke lokasi lain, lalu membangunkannya. Nama dan alamat host lokal akan berubah, tetapi $HOSTNAMEvariabel lingkungan shell masih memiliki nama host lama, dan itulah yang ia kirimkan dalam urutan kontrol. Untuk memperbaikinya, perbarui variabel lingkungan dengan:

 HOSTNAME=$(hostname)

Skenario lain adalah ketika Anda keluar dari Terminal, mengubah konfigurasi jaringan, lalu membuka Terminal dengan Resume diaktifkan. Terminal akan mengembalikan jendela dan tab, bersama dengan URL direktori kerja terakhir yang dikirimkan masing-masing. Jika Anda mengalami kasus ini, $HOSTNAMEakan diperbarui — karena ini memulai shell baru — tetapi Terminal masih dapat memiliki URL basi hingga Anda mendapatkan shell untuk memperbaruinya lagi. Jika menampilkan prompt perintah tidak menyelesaikan masalah, coba ganti direktori dengan cdagar shell memperbaruinya.

Chris Page
sumber