ค้นหาเว็บไซต์

15 'pwd' (Print Working Directory) ตัวอย่างคำสั่งใน Linux


สำหรับผู้ที่ทำงานกับบรรทัดคำสั่ง Linux คำสั่ง 'pwd' มีประโยชน์มาก ซึ่งจะบอกว่าคุณอยู่ที่ไหน - ในไดเร็กทอรีใด โดยเริ่มจากรูท (/) พิเศษสำหรับมือใหม่ Linux ที่อาจหลงทางท่ามกลางไดเร็กทอรีในอินเทอร์เฟซบรรทัดคำสั่งขณะนำทาง คำสั่ง 'pwd' เข้ามาช่วยเหลือ

pwd คืออะไร?

'pwd' ย่อมาจาก 'Print Working Directory' ตามที่ระบุไว้ในชื่อ คำสั่ง 'pwd' จะพิมพ์ไดเร็กทอรีการทำงานปัจจุบันหรือเพียงผู้ใช้ไดเร็กทอรีที่มีอยู่ในปัจจุบัน จะพิมพ์ชื่อไดเร็กทอรีปัจจุบันพร้อมเส้นทางที่สมบูรณ์โดยเริ่มต้นจาก root (/) คำสั่งนี้สร้างขึ้นในคำสั่งเชลล์และพร้อมใช้งานบนเชลล์ส่วนใหญ่ - bash, บอร์นเชลล์, ksh, zsh ฯลฯ

ไวยากรณ์พื้นฐานของ pwd:
pwd [OPTION]
ตัวเลือกที่ใช้กับ pwd
 Options

 คำอธิบาย

 -L (logical)

 ใช้ PWD จากสภาพแวดล้อม แม้ว่าจะมีลิงก์สัญลักษณ์ก็ตาม

 -P (physical)

 หลีกเลี่ยงลิงก์สัญลักษณ์ทั้งหมด

 –help

 แสดงวิธีใช้นี้และออก

 –version

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

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

สถานะทางออกของคำสั่ง pwd:

0

ความสำเร็จ

Non-zero

ล้มเหลว

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

1. พิมพ์ไดเร็กทอรีการทำงานปัจจุบันของคุณ

avi@tecmint:~$ /bin/pwd

/home/avi

2. สร้างลิงก์สัญลักษณ์ของโฟลเดอร์ (พูด /var/www/html ลงในโฮมไดเร็กตอรี่ของคุณเป็น htm) ย้ายไปยังไดเร็กทอรีที่สร้างขึ้นใหม่และพิมพ์ไดเร็กทอรีการทำงานที่มีลิงก์สัญลักษณ์และไม่มีลิงก์สัญลักษณ์

สร้างลิงก์สัญลักษณ์ของโฟลเดอร์ /var/www/html เป็น htm ในโฮมไดเร็กตอรี่ของคุณแล้วย้ายไปที่ไดเร็กตอรี่นั้น

avi@tecmint:~$ ln -s /var/www/html/ htm
avi@tecmint:~$ cd htm

3. พิมพ์ไดเร็กทอรีการทำงานจากสภาพแวดล้อมแม้ว่าจะมีลิงก์สัญลักษณ์ก็ตาม

avi@tecmint:~$ /bin/pwd -L

/home/avi/htm

4. พิมพ์ไดเร็กทอรีการทำงานจริงในปัจจุบันโดยการแก้ไขลิงก์สัญลักษณ์ทั้งหมด

avi@tecmint:~$ /bin/pwd -P

/var/www/html

5. ตรวจสอบว่าเอาต์พุตของคำสั่ง “pwd ” และ “pwd -P ” เหมือนกันหรือไม่ กล่าวคือ หากไม่มีการกำหนดตัวเลือกไว้ที่ รันไทม์จะ “pwd ” คำนึงถึงตัวเลือก -P หรือไม่โดยอัตโนมัติ

avi@tecmint:~$ /bin/pwd

/var/www/html

ผลลัพธ์: ชัดเจนจากผลลัพธ์ด้านบนของตัวอย่างที่ 4 และ 5 (ผลลัพธ์ทั้งคู่เหมือนกัน) ดังนั้น เมื่อไม่ได้ระบุตัวเลือกด้วยคำสั่ง “pwd ” จะนำตัวเลือก “-P ” มาพิจารณาโดยอัตโนมัติ

6. เวอร์ชันพิมพ์ของคำสั่ง 'pwd' ของคุณ

avi@tecmint:~$ /bin/pwd --version

pwd (GNU coreutils) 8.23
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Jim Meyering.

หมายเหตุ: คำสั่ง 'pwd' มักใช้โดยไม่มีตัวเลือกและไม่เคยใช้กับอาร์กิวเมนต์

ข้อสำคัญ: คุณอาจสังเกตเห็นว่าเรากำลังดำเนินการคำสั่งข้างต้นเป็น “/bin/pwd ” ไม่ใช่ “pwd< /ข> ”.

แล้วความแตกต่างคืออะไร? “pwd เพียงอย่างเดียวหมายถึงเชลล์ในตัว pwd เชลล์ของคุณอาจมี pwd เวอร์ชันอื่น โปรดดูคู่มือ เมื่อเราใช้ /bin/pwd เรากำลังเรียกคำสั่งนั้นในรูปแบบไบนารี ทั้งคำสั่งเชลล์และเวอร์ชันไบนารี่จะพิมพ์ Current Working Directory แม้ว่าเวอร์ชันไบนารีจะมีตัวเลือกมากกว่าก็ตาม

7. พิมพ์ตำแหน่งทั้งหมดที่มีไฟล์ปฏิบัติการชื่อ pwd

avi@tecmint:~$ type -a pwd

pwd is a shell builtin
pwd is /bin/pwd

8. เก็บค่าของคำสั่ง “pwd ” ในตัวแปร (พูดว่า a) และพิมพ์ค่าจากตัวแปร (สำคัญสำหรับการเขียนสคริปต์เชลล์ ทัศนคติ).

avi@tecmint:~$ a=$(pwd)
avi@tecmint:~$ echo "Current working directory is : $a"

Current working directory is : /home/avi

หรืออีกทางหนึ่ง เราสามารถใช้ printf ในตัวอย่างข้างต้น

9. เปลี่ยนไดเร็กทอรีการทำงานปัจจุบันเป็นอะไรก็ได้ (พูด /home) และแสดงในบรรทัดคำสั่ง ดำเนินการคำสั่ง (พูดว่า 'ls') เพื่อตรวจสอบว่าทุกอย่างตกลง

avi@tecmint:~$ cd /home
avi@tecmint:~$ PS1='$pwd> '		[Notice single quotes in the example]
> ls

10. ตั้งค่าพรอมต์บรรทัดคำสั่งหลายบรรทัด (พูดประมาณนี้ด้านล่าง)

/home
123#Hello#!

จากนั้นดำเนินการคำสั่ง (พูด ls) เพื่อตรวจสอบว่าทุกอย่าง OK

avi@tecmint:~$ PS1='
> $PWD
123#Hello#!
'

/home
123#Hello#!

11. ตรวจสอบไดเร็กทอรีการทำงานปัจจุบันและไดเร็กทอรีการทำงานก่อนหน้าใน GO!

avi@tecmint:~$ echo “$PWD $OLDPWD”

/home /home/avi

12. อะไรคือพาธสัมบูรณ์ (เริ่มต้นจาก /) ของไฟล์ไบนารี่ pwd

/bin/pwd 

13. อะไรคือพาธสัมบูรณ์ (เริ่มต้นจาก /) ของไฟล์ต้นฉบับ pwd

/usr/include/pwd.h 

14. พิมพ์เส้นทางสัมบูรณ์ (เริ่มต้นจาก /) ของไฟล์หน้าคู่มือ pwd

/usr/share/man/man1/pwd.1.gz

15. เขียนเชลล์สคริปต์เพื่อวิเคราะห์ไดเร็กทอรีปัจจุบัน (เช่น tecmint) ในโฮมไดเร็กตอรี่ของคุณ หากคุณอยู่ภายใต้ไดเร็กทอรี tecmint ผลลัพธ์จะเป็น "Well! คุณอยู่ในไดเร็กทอรี tecmint ” จากนั้นพิมพ์ “Good Bye ” หรือสร้างไดเร็กทอรี tecmint ใต้โฮมไดเร็กทอรีของคุณและขอให้คุณ cd ถึงมัน

ก่อนอื่นเรามาสร้างไดเร็กทอรี 'tecmint' โดยสร้างไฟล์เชลล์สคริปต์ต่อไปนี้ชื่อ 'pwd.sh'

avi@tecmint:~$ mkdir tecmint
avi@tecmint:~$ cd tecmint
avi@tecmint:~$ nano pwd.sh

ถัดไป เพิ่มสคริปต์ต่อไปนี้ลงในไฟล์ pwd.sh

#!/bin/bash

x="$(pwd)"
if [ "$x" == "/home/$USER/tecmint" ]
then
     {
      echo "Well you are in tecmint directory"
      echo "Good Bye"
     }
else
     {
      mkdir /home/$USER/tecmint
      echo "Created Directory tecmint you may now cd to it"
     }
fi

ให้สิทธิ์ดำเนินการและเรียกใช้

avi@tecmint:~$ chmod 755 pwd.sh
avi@tecmint:~$ ./pwd.sh

Well you are in tecmint directory
Good Bye

บทสรุป

pwd เป็นหนึ่งในคำสั่งที่ง่ายที่สุดแต่ได้รับความนิยมและใช้กันอย่างแพร่หลายที่สุด คำสั่งที่ดีบน pwd นั้นเป็นพื้นฐานในการใช้เทอร์มินัล Linux นั่นคือทั้งหมดที่สำหรับตอนนี้. ฉันจะมาที่นี่อีกครั้งพร้อมกับบทความที่น่าสนใจอีกในเร็วๆ นี้ จนกว่าจะถึงตอนนั้น โปรดคอยติดตามและเชื่อมต่อกับ Tecmint


สงวนลิขสิทธิ์. © Linux-Console.net • 2019-2024