15 ví dụ lệnh pwd (In thư mục làm việc) trong Linux

Đối với những người làm việc với dòng lệnh Linux, lệnh pwd rất hữu ích, nó cho biết bạn đang ở đâu - ở thư mục nào, bắt đầu từ thư mục gốc (/). Đặc biệt đối với những người mới sử dụng Linux, những người có thể lạc lối giữa các thư mục trong giao diện dòng lệnh khi điều hướng, lệnh ‘pwd‘ có thể giúp bạn thoát khỏi tình cảnh đó.

Linux pwd Command Examples

Khái niệm của lệnh pwd là gì?

Lệnh ‘pwd‘ viết tắt của ‘Print Working Directory‘. Như tên gọi, lệnh ‘pwd‘ in ra thư mục làm việc hiện tại hoặc đơn giản là thư mục người dùng hiện tại. Nó in ra tên thư mục hiện tại với đường dẫn đầy đủ bắt đầu từ gốc (/). Lệnh này được tích hợp trong lệnh shell và có sẵn trên hầu hết các shell - bash, Bourne shell, ksh, zsh, v.v.

Cú pháp cơ bản của pwd

# pwd [OPTION]

Các tùy chọn sử dụng với pwd

 Tùy chọn  Mô tả
 -L (logical)  Sử dụng PWD từ môi trường, ngay cả khi nó chứa các liên kết biểu tượng
 -P (physical)  Tránh tất cả các liên kết biểu tượng
 –help  Hiển thị trợ giúp và thoát
 –version  Hiển thị thông tin phiên bản và thoát

Nếu cả hai tùy chọn ‘-L‘ và ‘-P‘ được sử dụng, tùy chọn ‘L‘ sẽ được ưu tiên. Nếu không có tùy chọn nào được chỉ định, pwd sẽ tránh tất cả các liên kết biểu tượng, tức là sử dụng tùy chọn ‘-P‘.

Trạng thái thoát của lệnh pwd:

0 Thành công
Khác không Thất bại

Lệnh pwd và các ví dụ thực tiễn

1. In ra thư mục làm việc hiện tại của bạn

avi@tecmint:~$ /bin/pwd

/home/avi

2. Tạo một liên kết biểu tượng của một thư mục (ví dụ /var/www/html ) vào thư mục home của bạn như htm). Chuyển đến thư mục mới được tạo và in ra thư mục làm việc hiện tại với liên kết biểu tượng và không có liên kết biểu tượng.

Tạo một liên kết biểu tượng của thư mục /var/www/html với tên htm trong thư mục home của bạn và di chuyển đến nó.

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

3. In ra thư mục làm việc từ môi trường ngay cả khi nó chứa các liên kết biểu tượng.

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

/home/avi/htm

4. In ra thư mục làm việc vật lý thực tế bằng cách giải quyết tất cả các liên kết biểu tượng.

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

/var/www/html

5. Kiểm tra xem đầu ra của lệnh “pwd” và “pwd -P” có giống nhau không, tức là nếu không có tùy chọn nào được chỉ định tại thời điểm chạy thì “pwd” sẽ sử dụng tùy chọn -P hay không.

avi@tecmint:~$ /bin/pwd

/var/www/html

Kết quả: Rõ ràng từ đầu ra trên của các ví dụ 4 và 5 (cả hai kết quả đều giống nhau), vì vậy khi không có tùy chọn được chỉ định với lệnh “pwd”, nó tự động sử dụng tùy chọn “-P”.

6. In ra phiên bản của lệnh ‘pwd’ của bạn.

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.

Lưu ý: Lệnh ‘pwd’ thường được sử dụng mà không có tùy chọn và không bao giờ được sử dụng với các đối số.

Quan trọng: Bạn có thể đã nhận thấy rằng chúng tôi thực hiện lệnh trên dưới dạng “/bin/pwd” và không phải “pwd”.

Vậy sự khác biệt là gì? “pwd” một mình có nghĩa là pwd tích hợp trong shell. Shell của bạn có thể có phiên bản khác nhau của pwd. Vui lòng tham khảo tài liệu. Khi chúng tôi sử dụng  /bin/pwd, chúng tôi đang gọi phiên bản nhị phân của lệnh đó. Cả hai phiên bản shell và nhị phân của lệnh In ra thư mục làm việc hiện tại của bạn, mặc dù phiên bản nhị phân có nhiều tùy chọn hơn.

7. In ra tất cả các vị trí chứa tập tin thực thi có tên là pwd.

avi@tecmint:~$ type -a pwd

pwd is a shell builtin
pwd is /bin/pwd

8. Lưu giá trị của lệnh “pwd” vào biến (giả sử a), và in ra giá trị từ biến (quan trọng cho việc viết kịch bản shell).

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

Current working directory is : /home/avi

Hoặc, chúng ta có thể sử dụng printf, trong ví dụ trên.

9. Thay đổi thư mục làm việc hiện tại thành bất cứ thứ gì (ví dụ /home) và hiển thị nó trong dấu nhắc dòng lệnh. Thực thi một lệnh (ví dụ ‘ls‘) để kiểm tra tất cả mọi thứ có OK không.

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

10. Đặt dòng lệnh hiện tại nhiều dòng (ví dụ như dưới đây)

/home
123#Hello#!

Và sau đó thực thi một lệnh (ví dụ  ls) để kiểm tra xem mọi thứ OK không.

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

/home
123#Hello#!

11. Kiểm tra thư mục làm việc hiện tại và thư mục làm việc trước đó trong một lần.

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

/home /home/avi

12. Đâu là đường dẫn tuyệt đối (bắt đầu từ /) của tệp nhị phân pwd.

/bin/pwd 

13. Đâu là đường dẫn tuyệt đối (bắt đầu từ /) của tệp nguồn pwd.

/usr/include/pwd.h 

14. In ra đường dẫn tuyệt đối (bắt đầu từ /) của tệp trang hướng dẫn pwd.

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

15. Viết một kịch bản shell phân tích thư mục hiện tại (ví dụ tecmint) trong thư mục home của bạn. Nếu bạn đang ở trong thư mục tecmint nó sẽ đầu ra “Well! You are in tecmint directory” và sau đó in ra “Good Bye” nếu không tạo một thư mục tecmint trong thư mục home và yêu cầu bạn cd vào nó.

Hãy trước tiên tạo một thư mục ‘tecmint’, dưới đó tạo một tệp kịch bản shell sau đó đặt tên ‘pwd.sh’.

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

Tiếp theo, thêm kịch bản sau vào tệp 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

Cấp quyền thực thi và chạy nó.

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

Well you are in tecmint directory
Good Bye

Lệnh pwd là một trong những lệnh đơn giản nhưng phổ biến và được sử dụng rộng rãi nhất. Việc nắm vững pwd là cơ bản để sử dụng terminal Linux.