Perintah mana di shell sh Linux / UNIX yang mengembalikan direktori saya saat ini?

37

Menggunakan shshell (tidak bash), perintah mana di Linux / UNIX yang mencetak direktori saya saat ini?

$ *showmewhereiam*
/sys/kernel/debug
$
Hieu Nguyen
sumber
4
Pencarian google sederhana akan memberikan jawabannya, bukan?
Ilmuwan gila
9
@ Gila-ilmuwan Meskipun ini mungkin benar, ia mengalahkan tujuan dari situs tanya jawab untuk memberi tahu orang-orang untuk pergi ke Google. 90% dari lalu lintas kami berasal dari pencarian web .
slhck
2
Tidak ada yang terlalu sederhana untuk SEO!
Kenzo
Lucunya, pertanyaan ini ADALAH jawaban untuk pencarian google sederhanaunix whereami
Jay Killeen

Jawaban:

60

Coba pwd.

$ pwd
/home/<username>
keras dan jelas
sumber
6
ketika saya pertama kali menyentuh linux, saya pikir itu adalah perintah tentang kata sandi dan /devsesuatu tentang pengembangan (kode sumber atau sesuatu seperti itu)
LiuYan 刘 研
2
Oh, dev artinya perangkat ?! Selalu berpikir sampai sekarang itu hanya berarti dev ... Saya pikir dev / null adalah tempat pengembang linux meletakkan objek null khusus. Terima kasih @LiuYan 刘 研
1owk3y
@LiuYan 刘 研 - Saya sepenuhnya setuju itu membingungkan jika Anda tidak tahu. Saya harus mencarinya. Itu adalah singkatan dari "Print Working Directory" untuk siapa saja yang bingung mengapa mereka memilih perintah itu untuk fungsionalitas itu.
squarecandy
1
@ quarecandy, Itu sebabnya saya akan menghindari menggunakan akronim sebaik mungkin ketika saya bertambah tua dan semakin tua, bahkan akronim itu tidak memiliki makna yang ambigu saat ini - Anda tidak pernah tahu apa artinya itu di masa depan. Ada lelucon yang dikatakan oleh boneka Jeff Dunham Walter: Apa yang terjadi di DC tetap ada di YouTube! , Di mana DC sarana D igital C amera tetapi juga berarti Washington, D istrict dari C olumbia dalam lelucon itu.
LiuYan 刘 研
11

Sementara jawaban umumnya adalah pwd, perhatikan bahwa ini dapat memberikan hasil yang berbeda tergantung pada bagaimana Anda mencapai direktori yang diberikan, dan apakah rute termasuk tautan simbolik.

Misalnya, jika Anda memiliki direktori yang dipanggil realdan tautan simbolis ke direktori yang dipanggil virtual, dan Anda cdke virtualdirektori tersebut, maka pwdakan ditampilkan virtualnama direktori itu, meskipun direktori aktual Anda berada real.

Untuk menampilkan direktori mendasar yang sebenarnya, gunakan salah satu pwd -Patau readlink -f(untuk jalur arbitrer):

$ mkdir nyata
$ ln -s virtual nyata
$ cd virtual
$ pwd
/ home / nama pengguna / tmp / virtual
$ pwd -P
/ home / nama pengguna / tmp / nyata
$ readlink -f.
/ home / nama pengguna / tmp / nyata

Perhatikan bahwa shell sering mengganti pwdperintah dengan versi internalnya sendiri, jadi pada sistem saya (RHEL6), meskipun pwd(1)halaman buku panduan menyarankan bahwa itu --physicalakan berfungsi juga -P, karena saya sedang menjalankan bash, itu tidak:

$ pwd - fisik
bash: pwd: -: opsi tidak valid
pwd: penggunaan: pwd [-LP]
$ / bin / pwd - fisik
/ home / nama pengguna / tmp / nyata
$ / usr / bin / env pwd --fisik
/ home / nama pengguna / tmp / nyata
Mark Booth
sumber
1

Seperti orang lain katakan, pwdbiasanya melakukan pekerjaan dengan cukup baik. Namun, saya ingin menambahkan ide yang telah membantu saya.

Pada semua shell yang umum digunakan saat ini, Anda dapat menyesuaikan tampilan command prompt. Saya suka menyesuaikan milik saya sehingga itu menunjukkan kepada saya nama komputer tempat saya berada dan direktori kerja saya. Dengan begitu, saya selalu tahu di mana saya berada. (Bagian nama komputer membantu saya menyadari jika jendela terminal yang saya gunakan telah digunakan untuk SSH ke server jarak jauh.) Misalnya, ketika saya membuka jendela terminal baru pada laptop saya, yang saya sebut Plastico, saya melihat ini:

Plastico ~> cd Desktop/
Plastico ~/Desktop> cd ~/Sites/raygunrobot.com
Plastico ~/Sites/raygunrobot.com> cd /usr
Plastico /usr> 

Anda dapat melihat bahwa itu menyingkat direktori home saya sebagai ~. Saya menemukan melakukan ini untuk terminal prompt saya sangat berguna - Saya selalu tahu sekilas persis di mana saya berada, bahkan lebih daripada saya akan dengan melihat jendela Finder.

Pada tcsh, saya melakukan ini dengan menambahkan set prompt = 'Plastico %~%# ' file .tcshrc saya di direktori home saya. Saya sudah melakukannya di ksh juga dengan menambahkan export PS1="Plastico $PWD $ "ke file profil saya. Tapi sebagai pengguna Linux, Anda mungkin menggunakan Bash, yang saya tidak punya banyak pengalaman dengan (saya orang aneh seperti itu). Tapi sepertinya saya bisa melakukannya dengan menambahkan PS1="Plastico \w $ "file .bashrc saya.

Sunting: Hanya memperhatikan status OP yang Anda minati, bukan bash. Baiklah; semoga orang menemukan ini bermanfaat terlepas.

Garrett Albright
sumber
Itu ide yang keren. Mungkin berfungsi dengan baik untuk kasus penggunaan desktop sederhana. Sepertinya itu akan menjadi sulit untuk direktori super mendalam jika permintaan Anda sendiri Plastico /var/www/vhosts/myveryexcellentwebsite.com/public_html/wp-content/themes/myveryexcellenttheme/js/vendor/excellentjs/ >atau sesuatu seperti itu.
squarecandy
1
$ pwd
/your/current/directory
$

pwdberasal dari direktori kerja cetak .

Dari halaman manual Linux:

Nama

pwd - cetak nama direktori saat ini / yang berfungsi

Ringkasan

pwd [OPSI] ...

Deskripsi

Cetak nama file lengkap dari direktori kerja saat ini.

-L , --logical

gunakan PWD dari lingkungan, bahkan jika itu mengandung symlink

-P , --fisik

hindari semua symlink

--membantu

tampilkan bantuan ini dan keluar

--versi

informasi versi keluaran dan keluar

CATATAN: shell Anda mungkin memiliki versi pwd sendiri, yang biasanya menggantikan versi yang dijelaskan di sini. Silakan merujuk ke dokumentasi shell Anda untuk perincian tentang opsi yang didukungnya.

(...)

simhumileco
sumber
Ini menggandakan informasi dalam jawaban yang diterima dari lebih dari lima tahun yang lalu . Bisakah Anda menambahkan yang lain?
bertieb