คำสั่งใดในเชลล์ sh / Linux UNIX ส่งคืนไดเรกทอรีปัจจุบันของฉัน


37

การใช้shเชลล์ (ไม่ใช่bash) คำสั่งใดใน Linux / UNIX จะพิมพ์ไดเรกทอรีปัจจุบันของฉัน

$ *showmewhereiam*
/sys/kernel/debug
$

4
การค้นหา google อย่างง่ายจะได้รับคำตอบใช่ไหม?
นักวิทยาศาสตร์บ้า

9
@ Mad-Scientist ถึงแม้ว่าสิ่งนี้อาจเป็นจริง แต่ก็เอาชนะจุดประสงค์ของเว็บไซต์คำถาม / คำตอบเพื่อบอกให้ผู้คนไปที่ Google 90% ของการเข้าชมของเราจากการค้นหาเว็บ
slhck


2
ไม่มีอะไรง่ายเกินไปสำหรับ SEO!
Kenzo

สนุกพอคำถามนี้คือคำตอบของการค้นหา google ง่าย ๆunix whereami
Jay Killeen

คำตอบ:


60

ลองpwdดู

$ pwd
/home/<username>

6
เมื่อฉันสัมผัส linux ครั้งแรกฉันคิดว่ามันเป็นคำสั่งเกี่ยวกับรหัสผ่านและ/devเป็นสิ่งที่เกี่ยวกับการพัฒนา (ซอร์สโค้ดหรืออะไรทำนองนั้น)
LiuYan 刘刘

2
โอ้ dev หมายถึงอุปกรณ์! คิดเสมอจนถึงตอนนี้มันหมายถึง dev ... ฉันคิดว่า dev / null เป็นที่ที่นักพัฒนา linux ใส่วัตถุ null พิเศษ ขอบคุณ @LiuYan 刘研
1owk3y

@LiuYan 刘研 - ฉันเห็นด้วยทั้งหมดว่ามันสับสนถ้าคุณไม่รู้ ฉันต้องค้นหามัน มันย่อมาจาก "Print Working Directory" สำหรับทุกคนที่งงงวยว่าทำไมพวกเขาจะเลือกคำสั่งนั้นสำหรับการทำงานนั้น
squarecandy

1
@squarecandy นั่นเป็นเหตุผลที่ฉันจะหลีกเลี่ยงการใช้คำย่อให้มากที่สุดเท่าที่จะทำได้เมื่อโตขึ้นและมากขึ้นถึงแม้ตัวย่อจะไม่มีความหมายที่คลุมเครือในเวลานี้ - คุณไม่มีทางรู้ว่ามันจะมีความหมายในอนาคต มีเรื่องตลกที่พูดโดยตุ๊กตาของJeff Dunham Walter: เกิดอะไรขึ้นใน DC อยู่บน YouTube! ที่ DC หมายถึงD igital C amera แต่ยังหมายถึง Washington, D istrict ของC olumbia ในเรื่องตลก
LiuYan 刘研

11

ในขณะที่คำตอบทั่วไปคือpwdโปรดทราบว่าสิ่งนี้อาจให้ผลลัพธ์ที่แตกต่างกันขึ้นอยู่กับว่าคุณไปถึงไดเรกทอรีที่กำหนดหรือไม่และเส้นทางนั้นมีลิงก์สัญลักษณ์หรือไม่

ตัวอย่างเช่นถ้าคุณมีไดเรกทอรีที่เรียกว่าrealและการเชื่อมโยงสัญลักษณ์ไปยังไดเรกทอรีที่เรียกว่าvirtualและคุณcdไปยังvirtualไดเรกทอรีแล้วpwdจะแสดงให้เห็นว่าชื่อไดเรกทอรีแม้ว่าไดเรกทอรีจริงที่คุณอยู่นั้นอยู่virtualreal

ในการแสดงไดเรกทอรีพื้นฐานจริงให้ใช้อย่างใดอย่างหนึ่งpwd -Pหรือreadlink -f(สำหรับเส้นทางที่กำหนดเอง):

$ mkdir จริง
$ ln -s เสมือนจริง
$ cd virtual
$ pwd
/ home / ชื่อผู้ใช้ / tmp / เสมือน
$ pwd -P
/ home / ชื่อผู้ใช้ / tmp / จริง
$ readlink -f
/ home / ชื่อผู้ใช้ / tmp / จริง

โปรดทราบว่าเชลล์มักจะแทนที่pwdคำสั่งด้วยเวอร์ชันภายในของตัวเองดังนั้นในระบบของฉัน (RHEL6) ถึงแม้ว่าpwd(1)หน้าคู่มือจะแนะนำว่ามัน--physicalจะทำงานได้ดีเหมือนกัน-Pเพราะฉันกำลังทำงานอยู่bashมันไม่ได้:

$ pwd - ทางกายภาพ
bash: pwd: -: ตัวเลือกที่ไม่ถูกต้อง
pwd: การใช้งาน: pwd [-LP]
$ / bin / pwd - ทางกายภาพ
/ home / ชื่อผู้ใช้ / tmp / จริง
$ / usr / bin / env pwd - ทางกายภาพ
/ home / ชื่อผู้ใช้ / tmp / จริง

1

อย่างที่คนอื่นพูดpwdมักจะทำงานได้ดีพอ อย่างไรก็ตามฉันต้องการเพิ่มแนวคิดที่ช่วยฉันออกไป

สำหรับเชลล์ทั่วไปที่ใช้กันทั่วไปในวันนี้คุณสามารถปรับแต่งลักษณะที่ปรากฏของพรอมต์คำสั่งได้ ฉันชอบที่จะปรับแต่งของฉันเพื่อให้มันแสดงให้ฉันเห็นทั้งชื่อของคอมพิวเตอร์ที่ฉันเปิดและสมุดงานของฉัน ด้วยวิธีนี้ฉันมักจะรู้ว่าฉันอยู่ที่ไหน (ส่วนชื่อคอมพิวเตอร์ช่วยให้ฉันรู้ว่าหน้าต่างเทอร์มินัลที่ฉันใช้ถูกใช้เพื่อ SSH ไปยังเซิร์ฟเวอร์ระยะไกล) ตัวอย่างเช่นเมื่อฉันเปิดหน้าต่างเทอร์มินัลใหม่บนแล็ปท็อปซึ่งฉันเรียกว่า Plastico ฉันเห็นสิ่งนี้:

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

~คุณจะเห็นว่ามันย่อไดเรกทอรีบ้านของฉันเป็น ฉันพบว่าการทำเช่นนี้เพื่อการแจ้งเตือนเทอร์มินัลของฉันมีประโยชน์อย่างไม่น่าเชื่อ - ฉันมักจะรู้ได้ทันทีว่าฉันอยู่ที่ไหนมากยิ่งกว่าที่ฉันจะทำได้โดยดูที่หน้าต่าง Finder

ใน tcsh ฉันทำได้โดยเพิ่มset prompt = 'Plastico %~%# ' ไฟล์. tcshrc ในโฮมไดเร็กตอรี่ของฉัน ฉันทำมันด้วย ksh ด้วยโดยเพิ่มexport PS1="Plastico $PWD $ "ไฟล์. profile ของฉัน แต่ในฐานะผู้ใช้ลีนุกซ์คุณอาจใช้ Bash ซึ่งฉันไม่มีประสบการณ์มากนัก (ฉันเป็นคนแบบนี้) แต่ดูเหมือนว่าฉันอาจจะทำได้โดยเพิ่มPS1="Plastico \w $ "ลงในไฟล์. bashrc ของฉัน

แก้ไข:เพิ่งสังเกตเห็นสถานะ OP ที่คุณสนใจไม่ใช่แค่ทุบตี โอ้สบายดี หวังว่าทุกคนจะพบว่าสิ่งนี้มีประโยชน์


นั่นเป็นความคิดที่ยอดเยี่ยม อาจทำงานได้ดีสำหรับกรณีการใช้เดสก์ท็อปอย่างง่าย ดูเหมือนว่ามันอาจไม่ได้ผลสำหรับไดเรกทอรีระดับลึกหากพร้อมท์ของคุณเพียงอย่างเดียวPlastico /var/www/vhosts/myveryexcellentwebsite.com/public_html/wp-content/themes/myveryexcellenttheme/js/vendor/excellentjs/ >หรืออะไรทำนองนั้น
squarecandy

1
$ pwd
/your/current/directory
$

pwdมาจากไดเรกทอรีพิมพ์ทำงาน

จากหน้า man Linux:

ชื่อ

pwd - ชื่อพิมพ์ของไดเรกทอรีปัจจุบัน / ทำงาน

สรุป

pwd [ตัวเลือก] ...

ลักษณะ

พิมพ์ชื่อไฟล์แบบเต็มของไดเรกทอรีการทำงานปัจจุบัน

-L , - เชิงตรรกะ

ใช้ PWD จากสภาพแวดล้อมแม้ว่าจะมี symlinks

-P , - ทางกายภาพ

หลีกเลี่ยงการเชื่อมโยงทั้งหมด

--ช่วยด้วย

แสดงความช่วยเหลือและออกจากนี้

--version

ข้อมูลเวอร์ชันเอาต์พุตและออก

หมายเหตุ: เชลล์ของคุณอาจมี pwd รุ่นของตัวเองซึ่งโดยปกติจะแทนที่เวอร์ชั่นที่อธิบายไว้ที่นี่ โปรดดูเอกสารประกอบเชลล์ของคุณสำหรับรายละเอียดเกี่ยวกับตัวเลือกที่รองรับ

( ... )


นี้ข้อมูลที่ซ้ำกันในคำตอบที่ได้รับการยอมรับจากกว่าห้าปีที่ผ่านมา คุณสามารถเพิ่มอะไรอีกไหม
bertieb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.