Bạn có bao giờ thắc mắc lệnh pwd trong Linux là gì và nó dùng để làm gì không? Khi làm việc với môi trường dòng lệnh của Linux, việc di chuyển qua lại giữa các thư mục là thao tác diễn ra liên tục. Đôi khi, bạn có thể quên mất mình đang ở đâu trong cây thư mục phức tạp. Việc xác định thư mục làm việc hiện tại một cách dễ dàng và chính xác là rất quan trọng để tránh những sai sót không đáng có, như tạo file sai chỗ hoặc thực thi một lệnh không đúng ngữ cảnh. Đây chính là lúc lệnh pwd phát huy sức mạnh của mình. Lệnh pwd là một công cụ đơn giản nhưng cực kỳ hiệu quả, giúp bạn biết ngay lập tức vị trí thư mục hiện tại trong hệ thống. Bài viết này sẽ giới thiệu chi tiết về chức năng, cách dùng cơ bản, 10 ví dụ thực tế, ứng dụng, lời khuyên và so sánh pwd với các lệnh tương tự khác để bạn làm chủ hoàn toàn công cụ này.
Giới thiệu và chức năng của lệnh pwd trong Linux
Lệnh pwd là một trong những lệnh cơ bản và được sử dụng thường xuyên nhất trong các hệ điều hành tương tự Unix, bao gồm cả Linux là gì. Mặc dù đơn giản, nhưng nó đóng một vai trò nền tảng trong việc điều hướng và quản lý hệ thống tệp. Hiểu rõ về lệnh này sẽ giúp bạn làm việc với terminal một cách tự tin và hiệu quả hơn rất nhiều.

Lệnh pwd là gì?
pwd là viết tắt của cụm từ “print working directory”, có nghĩa là “in thư mục làm việc”. Đúng như tên gọi, chức năng chính của lệnh này là hiển thị đường dẫn tuyệt đối của thư mục mà bạn đang đứng trong đó. Đường dẫn tuyệt đối là một chuỗi bắt đầu từ thư mục gốc (root), được biểu thị bằng dấu gạch chéo (/), và đi qua tất cả các thư mục con để đến vị trí hiện tại của bạn. Ví dụ, một đường dẫn như /home/buimanhduc/documents cho bạn biết chính xác vị trí thư mục “documents” trong hệ thống. Vai trò của pwd rất quan trọng trong quản lý hệ thống file, nó giúp người dùng và các script tự động xác định ngữ cảnh hoạt động, đảm bảo rằng các thao tác như tạo, xóa, hoặc sửa đổi tệp tin được thực hiện đúng nơi, đúng chỗ.
Cơ chế hoạt động của lệnh pwd
Lệnh pwd hoạt động bằng cách truy xuất thông tin về thư mục hiện tại mà môi trường shell (command-line interpreter) đang duy trì. Mỗi khi bạn sử dụng lệnh cd (change directory) để di chuyển đến một thư mục khác, shell sẽ cập nhật một biến môi trường nội bộ để ghi nhớ vị trí mới này. Khi bạn gõ pwd và nhấn Enter, lệnh này chỉ đơn giản là đọc giá trị của biến đó và hiển thị nó ra màn hình. Điều này giải thích tại sao pwd thực thi gần như ngay lập tức, vì nó không cần phải quét toàn bộ hệ thống tệp để tìm ra vị trí của bạn. Trong hầu hết các shell hiện đại như Bash là gì, pwd là một lệnh được tích hợp sẵn (built-in command), nghĩa là nó là một phần của chính shell, giúp tối ưu hóa hiệu suất. Cơ chế này hoạt động nhất quán dù bạn đang làm việc trên máy chủ cục bộ hay kết nối từ xa thông qua SSH, vì shell luôn theo dõi thư mục làm việc hiện tại cho phiên làm việc của bạn.
Cách sử dụng lệnh pwd cơ bản trong terminal
Sử dụng pwd cực kỳ đơn giản và không đòi hỏi bất kỳ kiến thức phức tạp nào. Đây là một trong những lệnh đầu tiên mà người mới bắt đầu học Linux nên làm quen. Nắm vững cú pháp và các tham số cơ bản sẽ giúp bạn tận dụng tối đa công dụng của nó.

Cú pháp và các tham số chính
Cú pháp cơ bản của lệnh pwd vô cùng gọn gàng. Trong hầu hết các trường hợp, bạn chỉ cần gõ lệnh mà không cần thêm bất kỳ tham số nào.
Cú pháp chung: pwd [OPTION]
pwd (không có tham số): Đây là cách dùng phổ biến nhất. Nó sẽ in ra đường dẫn logic của thư mục làm việc hiện tại.
pwd -L hoặc pwd --logical: Tham số này yêu cầu pwd hiển thị đường dẫn logic. Đây là hành vi mặc định. Nếu đường dẫn chứa các liên kết tượng trưng (symbolic links), pwd -L sẽ hiển thị tên của liên kết đó trong đường dẫn.
pwd -P hoặc pwd --physical: Ngược lại với -L, tham số -P yêu cầu pwd hiển thị đường dẫn vật lý. Nó sẽ bỏ qua tất cả các liên kết tượng trưng và hiển thị đường dẫn thực tế, “chính chủ” của thư mục.
pwd --help: Hiển thị thông tin trợ giúp về lệnh và các tham số của nó.
pwd --version: Hiển thị thông tin phiên bản của lệnh pwd.
Các bước thực hiện trên terminal
Thực thi lệnh pwd trên terminal là một quy trình nhanh chóng và trực quan. Dù bạn đang sử dụng bất kỳ bản phân phối Linux nào (Ubuntu, CentOS, Fedora), các bước đều tương tự nhau.
- Mở Terminal: Bạn có thể mở ứng dụng Terminal từ menu ứng dụng hoặc sử dụng phím tắt, thường là
Ctrl + Alt + T.
- Gõ lệnh: Tại dấu nhắc lệnh (prompt), bạn chỉ cần gõ
pwd.
- Nhấn Enter: Sau khi gõ lệnh, nhấn phím Enter để thực thi.
Ngay lập tức, terminal sẽ trả về kết quả là một dòng duy nhất chứa đường dẫn tuyệt đối của thư mục bạn đang đứng. Ví dụ, nếu bạn vừa mở terminal, kết quả thường sẽ là thư mục nhà của bạn, chẳng hạn như /home/username. Nếu bạn đã dùng lệnh cd để di chuyển đến một thư mục khác, pwd sẽ phản ánh chính xác vị trí mới đó.
10 ví dụ chi tiết minh họa cách dùng lệnh pwd
Lý thuyết sẽ dễ hiểu hơn rất nhiều khi đi kèm với các ví dụ thực tế. Dưới đây là 10 ví dụ từ cơ bản đến nâng cao, minh họa cách bạn có thể sử dụng lệnh pwd trong các tình huống khác nhau để quản lý thư mục hiệu quả hơn.

Ví dụ 1 – Kiểm tra thư mục hiện hành đơn giản
Đây là cách sử dụng cơ bản và phổ biến nhất. Bất cứ khi nào bạn cảm thấy không chắc chắn về vị trí hiện tại của mình trong hệ thống tệp, chỉ cần gõ lệnh pwd.
pwd
Kết quả trả về sẽ là đường dẫn tuyệt đối, ví dụ:
/home/buimanhduc/projects/website
Ví dụ 2 – Sử dụng pwd kết hợp trong script shell
Trong lập trình script, việc xác định thư mục mà script đang được chạy là cực kỳ quan trọng. Bạn có thể gán kết quả của pwd vào một biến để sử dụng sau này.
#!/bin/bash
CURRENT_DIR=$(pwd)
echo "Script đang được thực thi từ thư mục: $CURRENT_DIR"
# Các lệnh khác sử dụng biến CURRENT_DIR
# vi du: tao một file log tại thư mục này
touch "$CURRENT_DIR/script.log"
Ví dụ 3 – Kết hợp pwd với lệnh cd để chuyển đổi thư mục
Sau khi dùng lệnh cd để di chuyển đến một thư mục khác, bạn nên dùng pwd để xác nhận rằng mình đã di chuyển đến đúng nơi mong muốn.
cd /var/log
pwd
Kết quả sẽ xác nhận bạn đang ở trong thư mục /var/log, giúp bạn tự tin thực hiện các thao tác tiếp theo.
Ví dụ 4 – Dùng option -L và -P để hiểu sự khác biệt
Đây là một ví dụ quan trọng để hiểu về liên kết tượng trưng (symbolic link). Giả sử bạn tạo một liên kết tên logs trỏ đến /var/log trong thư mục nhà của bạn.
# Tạo symbolic link tại thư mục nhà
ln -s /var/log ~/logs
# Di chuyển vào symbolic link
cd ~/logs
# Sử dụng pwd -L (mặc định)
pwd -L
# Kết quả sẽ hiển thị đường dẫn logic có chứa symbolic link
/home/buimanhduc/logs
# Sử dụng pwd -P
pwd -P
# Kết quả sẽ hiển thị đường dẫn vật lý thực sự
/var/log

Ví dụ 5 – Kết hợp pwd trong lệnh find hoặc ls
Bạn có thể dùng pwd để chỉ định thư mục tìm kiếm hoặc liệt kê là thư mục hiện tại một cách tường minh, đặc biệt hữu ích trong các script phức tạp.
# Tìm tất cả các file .conf trong thư mục hiện tại và các thư mục con
find $(pwd) -name "*.conf"
# Liệt kê chi tiết nội dung của thư mục hiện tại
ls -la $(pwd)
Ví dụ 6 – Hiển thị thư mục hiện tại trong prompt terminal
Bạn có thể tùy chỉnh dấu nhắc lệnh (prompt) của mình để nó luôn hiển thị thư mục làm việc hiện tại. Điều này rất tiện lợi vì bạn không cần phải gõ pwd liên tục. Bạn có thể thêm dòng sau vào file ~/.bashrc:
export PS1="\u@\h:[\$(pwd)]\$ "
Sau khi lưu file và mở lại terminal, prompt của bạn sẽ trông giống như sau: buimanhduc@server:[/home/buimanhduc/projects]$
Ví dụ 7 – Xác nhận thư mục làm việc trong môi trường đa user
Khi bạn đăng nhập vào một máy chủ với nhiều người dùng, hoặc sử dụng su để chuyển đổi sang người dùng khác, pwd giúp bạn xác nhận ngay lập tức bạn đang ở trong thư mục nhà của ai.
# Đang ở user buimanhduc
pwd
# /home/buimanhduc
# Chuyển sang user root
su -
# Kiểm tra lại vị trí
pwd
# /root
Ví dụ 8 – Dùng pwd để ghi log vị trí thư mục trong scripts tự động
Khi chạy các tác vụ tự động (cron jobs) hoặc script phức tạp, việc ghi lại thư mục làm việc tại thời điểm thực thi vào file log là rất cần thiết để gỡ lỗi sau này.
#!/bin/bash
LOG_FILE="/var/log/my_app.log"
echo "Bắt đầu tác vụ lúc $(date) tại thư mục $(pwd)" >> $LOG_FILE
# ... các lệnh xử lý của script ...
echo "Hoàn thành tác vụ." >> $LOG_FILE

Ví dụ 9 – Sử dụng pwd trên các phân vùng khác nhau
Lệnh pwd hoạt động trơn tru ngay cả khi bạn di chuyển qua các điểm gắn kết (mount points) của các phân vùng hoặc ổ đĩa khác nhau.
# Di chuyển đến một ổ đĩa USB được gắn vào
cd /media/buimanhduc/USB_DRIVE
# Kiểm tra vị trí
pwd
# /media/buimanhduc/USB_DRIVE
Ví dụ 10 – Ứng dụng pwd trong quản lý quyền truy cập file
Khi bạn cần thay đổi quyền của một file, việc sử dụng đường dẫn tuyệt đối là cách an toàn nhất để đảm bảo bạn đang thao tác đúng file. pwd giúp bạn lấy đường dẫn đó một cách nhanh chóng.
# Lấy đường dẫn tuyệt đối của file script.sh trong thư mục hiện tại
FILE_PATH=$(pwd)/script.sh
# Thay đổi quyền để file có thể thực thi
chmod +x $FILE_PATH
echo "Đã cấp quyền thực thi cho file tại: $FILE_PATH"
Ứng dụng thực tế của lệnh pwd trong quản lý thư mục
Ngoài các ví dụ cụ thể đã nêu, lệnh pwd có nhiều ứng dụng thực tiễn trong công việc hàng ngày của một người quản trị hệ thống, lập trình viên hay thậm chí là người dùng Linux là gì thông thường. Nó không chỉ là một lệnh để xem thông tin mà còn là một công cụ hỗ trợ đắc lực cho nhiều tác vụ khác.

Giúp kiểm tra vị trí hiện tại nhanh chóng
Đây là ứng dụng cơ bản nhưng quan trọng nhất. Trong một hệ thống với cấu trúc thư mục lồng nhau phức tạp, việc mất phương hướng là điều dễ xảy ra. Một lệnh pwd nhanh chóng sẽ giúp bạn định vị lại ngay lập tức. Điều này đặc biệt hữu ích khi bạn làm việc trên nhiều cửa sổ terminal cùng lúc, mỗi cửa sổ có thể đang ở một thư mục khác nhau. Thay vì phải nhớ hoặc đoán, bạn chỉ cần gõ pwd để có câu trả lời chính xác, tránh được các lỗi như chạy lệnh sai thư mục hoặc lưu file không đúng chỗ.
Hỗ trợ trong việc viết và debug script shell
Đối với các nhà phát triển và quản trị viên hệ thống, pwd là một đồng minh không thể thiếu khi viết script. Các script thường cần phải tương tác với các tệp tin hoặc thư mục dựa trên vị trí mà chúng được gọi. Bằng cách sử dụng CURRENT_DIR=$(pwd), script có thể hoạt động một cách linh hoạt và đáng tin cậy hơn, không phụ thuộc vào việc nó được chạy từ đâu. Khi gỡ lỗi (debug), việc in ra giá trị của pwd tại các điểm khác nhau trong script giúp bạn theo dõi luồng thực thi và xác định xem script có đang hoạt động trong ngữ cảnh thư mục đúng như mong đợi hay không.
Vai trò trong môi trường đa người dùng và quản lý hệ thống
Trên một máy chủ Linux có nhiều người dùng, mỗi người có một thư mục nhà (home directory) riêng. Khi một quản trị viên hệ thống cần kiểm tra hoặc xử lý vấn đề cho một người dùng cụ thể, họ thường phải di chuyển vào thư mục của người dùng đó. Lệnh pwd giúp họ xác nhận rằng họ đang ở đúng thư mục trước khi thực hiện các thay đổi quan trọng, chẳng hạn như sửa đổi file cấu hình hoặc kiểm tra dung lượng sử dụng. Điều này giúp ngăn ngừa các sai sót có thể ảnh hưởng đến dữ liệu của người dùng khác hoặc toàn bộ hệ thống.
Lời khuyên và lưu ý khi sử dụng lệnh pwd
Mặc dù pwd là một lệnh đơn giản, có một vài điểm bạn cần lưu ý để sử dụng nó một cách hiệu quả nhất và tránh những hiểu lầm không đáng có, đặc biệt là trong các tình huống phức tạp.

Các trường hợp tránh nhầm lẫn giữa pwd với các lệnh khác
Người mới bắt đầu đôi khi có thể nhầm lẫn chức năng của pwd với ls hoặc cd. Hãy ghi nhớ sự khác biệt cốt lõi này:
pwd (Print Working Directory): Trả lời câu hỏi “Tôi đang ở đâu?”. Nó chỉ hiển thị đường dẫn của thư mục hiện tại.
ls (List): Trả lời câu hỏi “Có gì ở đây?”. Nó liệt kê danh sách các tệp tin và thư mục con bên trong thư mục hiện tại.
cd (Change Directory): Là hành động “Hãy đưa tôi đến…”. Nó dùng để di chuyển bạn từ thư mục này sang thư mục khác.
Việc phân biệt rõ ràng ba lệnh này là nền tảng để điều hướng thành thạo trong terminal.
Lưu ý khi dùng pwd trong môi trường chứa liên kết symbol (symbolic link)
Đây là lưu ý quan trọng nhất khi sử dụng pwd. Khi thư mục làm việc của bạn hoặc một phần của đường dẫn đến nó là một liên kết tượng trưng, pwd mặc định (tương đương pwd -L) sẽ hiển thị đường dẫn chứa tên của liên kết đó. Trong khi đó, pwd -P sẽ hiển thị đường dẫn “vật lý”, tức là đường dẫn thực sự mà liên kết đó trỏ tới. Sự khác biệt này rất quan trọng trong các script tự động. Nếu script của bạn cần đường dẫn thực để hoạt động chính xác (ví dụ, để tránh các vòng lặp vô hạn hoặc để tương tác với các hệ thống file vật lý), bạn nên luôn sử dụng pwd -P để đảm bảo tính chính xác và ổn định.
So sánh lệnh pwd với các lệnh tương tự trong Linux
Trong hệ sinh thái Linux phong phú, thường có nhiều cách để đạt được cùng một mục tiêu. Lệnh pwd cũng có một số “họ hàng” hoặc các lệnh khác có thể cung cấp thông tin tương tự. Hiểu được sự khác biệt giữa chúng sẽ giúp bạn chọn đúng công cụ cho từng công việc.

pwd vs cd – Hiểu sự khác biệt cơ bản
Như đã đề cập, đây là sự khác biệt giữa “xem” và “làm”. pwd là một lệnh thụ động, mang tính thông tin, nó chỉ cho bạn biết vị trí hiện tại mà không làm thay đổi bất cứ điều gì. Ngược lại, cd là một lệnh chủ động, mang tính hành động, nó thay đổi vị trí của bạn trong hệ thống tệp. Chúng thường được sử dụng cùng nhau: bạn dùng cd để đi đến một nơi nào đó, và sau đó dùng pwd để xác nhận rằng bạn đã đến đúng nơi. Chúng là hai công cụ bổ trợ cho nhau trong quá trình điều hướng.
pwd vs readlink và các lệnh truy xuất đường dẫn khác
Lệnh readlink được sử dụng để đọc giá trị của một liên kết tượng trưng. Khi được sử dụng với tùy chọn -f (readlink -f .), nó sẽ tìm đường dẫn chuẩn hóa (canonical path) của một file hoặc thư mục bằng cách phân giải tất cả các liên kết tượng trưng. Lệnh readlink -f . (dấu chấm đại diện cho thư mục hiện tại) sẽ cho kết quả tương tự như pwd -P.
Vậy sự khác biệt là gì?
- Mục đích:
pwd được thiết kế chuyên biệt để lấy thư mục làm việc hiện tại, trong khi readlink là một công cụ đa năng hơn để làm việc với các đường dẫn và liên kết.
- Hiệu suất: Trong hầu hết các shell,
pwd là một lệnh tích hợp sẵn (builtin), nghĩa là nó chạy nhanh hơn vì không cần phải khởi chạy một tiến trình mới. readlink là một chương trình riêng biệt, có thể chậm hơn một chút.
- Tính khả dụng:
pwd có mặt trên hầu như mọi hệ thống Unix-like. readlink cũng rất phổ biến nhưng có thể không được cài đặt sẵn trên một số hệ thống tối giản.
Trong hầu hết các trường hợp, khi bạn chỉ cần biết thư mục làm việc hiện tại, pwd là lựa chọn đơn giản, nhanh chóng và đáng tin cậy nhất.
Các vấn đề thường gặp và cách khắc phục
Dù là một lệnh đáng tin cậy, đôi khi bạn có thể gặp phải những tình huống mà kết quả của pwd không như mong đợi. Dưới đây là một số vấn đề phổ biến và cách giải quyết chúng.

Kết quả pwd không chính xác do symbolic link
Đây là vấn đề phổ biến nhất. Bạn dùng cd để đi vào một thư mục, nhưng pwd lại hiển thị một đường dẫn khác với những gì bạn nghĩ. Gần như chắc chắn nguyên nhân là do bạn đã đi vào một liên kết tượng trưng.
- Vấn đề: Bạn
cd vào ~/myproject nhưng pwd lại hiển thị /opt/shared/project-A.
- Nguyên nhân: Thư mục
~/myproject thực chất là một symbolic link trỏ đến /opt/shared/project-A.
- Cách khắc phục: Để xem đường dẫn vật lý và tránh nhầm lẫn, hãy sử dụng lệnh
pwd -P. Lệnh này sẽ bỏ qua các liên kết và cho bạn thấy vị trí thực sự trên hệ thống tệp. Việc hiểu rõ sự khác biệt giữa pwd -L (mặc định) và pwd -P là chìa khóa để giải quyết vấn đề này.
Lệnh pwd không hoạt động trong một số shell hoặc môi trường hạn chế
Trong một số trường hợp cực kỳ hiếm, bạn có thể gặp lỗi “command not found” khi gõ pwd.
- Vấn đề: Terminal báo lỗi
pwd: command not found.
- Nguyên nhân: Điều này có thể xảy ra trong một môi trường shell rất hạn chế (restricted shell) hoặc một môi trường container tối giản không bao gồm các lệnh shell cơ bản. Cũng có thể biến
PATH của bạn đã bị cấu hình sai, khiến shell không tìm thấy các lệnh thực thi.
- Cách khắc phục:
- Trước tiên, hãy thử gọi trực tiếp tệp thực thi của
pwd: /bin/pwd. Nếu cách này hoạt động, vấn đề nằm ở biến PATH của bạn. Bạn cần kiểm tra và sửa lại file cấu hình shell (ví dụ ~/.bashrc hoặc ~/.zshrc).
- Nếu bạn đang ở trong một môi trường bị giới hạn, bạn cần liên hệ với quản trị viên hệ thống để được hỗ trợ. Tuy nhiên, vì
pwd là một lệnh shell builtin trong Bash, Zsh và nhiều shell khác, lỗi này rất hiếm khi xảy ra trong các môi trường làm việc thông thường.
Lời khuyên tốt nhất khi sử dụng lệnh pwd
Để trở thành một người dùng Linux thành thạo, việc sử dụng các công cụ cơ bản một cách thông minh là rất quan trọng. Dưới đây là những lời khuyên tốt nhất được đúc kết để bạn tận dụng tối đa sức mạnh của lệnh pwd.

- Luôn sử dụng pwd để xác minh vị trí trước khi thao tác với file/thư mục: Hãy tạo thói quen này, đặc biệt là trước khi thực hiện các lệnh có khả năng gây phá hủy như
rm -rf hoặc các lệnh thay đổi quyền sở hữu như chown. Một giây kiểm tra với pwd có thể cứu bạn khỏi nhiều giờ khắc phục sự cố.
- Hạn chế dùng pwd trong script nếu không cần thiết để tránh lỗi do symbolic link: Trong script, nếu bạn cần tham chiếu đến các file nằm cùng thư mục với script, hãy sử dụng các phương pháp xác định đường dẫn của script một cách an toàn hơn thay vì dựa vào
pwd. Tuy nhiên, khi script cần biết thư mục mà người dùng đang chạy nó, pwd (và đặc biệt là pwd -P) là công cụ phù hợp.
- Kết hợp pwd với các lệnh khác để tăng tính tự động và chính xác trong quản lý: Đừng chỉ sử dụng
pwd một mình. Hãy kết hợp nó với cd, ls, find, grep, và các biến trong script shell. Việc sử dụng CURRENT_DIR=$(pwd) sẽ làm cho các script của bạn trở nên mạnh mẽ, linh hoạt và dễ bảo trì hơn rất nhiều.