Liên hệProfile
Danh mục

Mục Lục

    Cách dùng lệnh realpath để xác định đường dẫn tuyệt đối chính xác trong Linux

    Nguyễn Hưng

    Ngày đăng:

    13/03/2026

    Cập nhật lần cuối:

    13/03/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    13/03/2026

    Cập nhật lần cuối:

    13/03/2026

    Mục lục

    Realpath Linux là lệnh dùng để chuyển đường dẫn tương đối hoặc có symlink thành đường dẫn tuyệt đối, đã được chuẩn hóa đầy đủ. Trong bài viết dưới đây, mình sẽ cùng bạn tìm hiểu về chức năng, các tùy chọn phổ biến cũng như hướng dẫn bạn cách sử dụng lệnh realpath chi tiết, hiệu quả qua các ví dụ cụ thể.

    Những điểm chính

    • Khái niệm: Hiểu rõ khái niệm và chức năng của realpath trong việc chuyển đổi đường dẫn tương đối thành tuyệt đối.
    • Các tùy chọn phổ biến: Nắm được bảng tra cứu nhanh các tùy chọn quan trọng như -s, -m--relative-to để xử lý đường dẫn linh hoạt.
    • Các ví dụ sử dụng thực tế: Thành thạo các kịch bản áp dụng realpath, từ xác định đường dẫn, truy vết symlink đến tích hợp trong script deploy và xử lý file hàng loạt.
    • Lưu ý khi sử dụng: Nắm được các lưu ý quan trọng để sử dụng realpath hiệu quả, so sánh với readlink -f và cách xử lý lỗi.
    • Câu hỏi thường gặp: Giải đáp các thắc mắc thường gặp liên quan đến realpath trong Linux.

    Realpath Linux là gì?

    Realpath là lệnh dùng để chuyển đổi đường dẫn tương đối thành đường dẫn tuyệt đối, đồng thời xử lý các liên kết tượng trưng và loại bỏ các ký tự tham chiếu thư mục (như . hoặc ..). Nếu đường dẫn trỏ tới file hoặc thư mục không tồn tại, lệnh realpath sẽ không trả về kết quả và trả lỗi.

    Realpath là lệnh dùng để chuyển đổi đường dẫn tương đối thành đường dẫn tuyệt đối
    Realpath là lệnh dùng để chuyển đổi đường dẫn tương đối thành đường dẫn tuyệt đối

    Trên vài hệ thống như AIX, MSYS2 hoặc môi trường tối giản, realpath có thể chưa được cài sẵn và bạn sẽ cần phải cài thêm gói phần mềm tương ứng thì mới có thể dùng được. Cú pháp của lệnh realpath như sau:

    realpath <file_or_dir>

    Trong đó, <file_or_dir> là đường dẫn đến một file hoặc thư mục, có thể là tương đối hoặc tuyệt đối.

    Giả sử bạn đang ở trong một thư mục bất kỳ và muốn lấy đường dẫn đầy đủ của file script, hãy thực hiện lệnh sau:

    realpath ./myscript.sh

    Kết quả đầu ra sẽ là:

    /home/user/myscript.sh

    Như vậy, dù đầu vào là đường dẫn tương đối (./myscript.sh), realpath luôn trả về full path bắt đầu từ root (/).

    Các tùy chọn của lệnh realpath trong Linux

    Cú pháp tổng quát của lệnh realpath như sau:

    realpath [OPTION]... FILE...

    Lệnh realpath cung cấp các tùy chọn như:

    Tùy chọnMô tảVí dụ
    -s, –stripKhông kiểm tra sự tồn tại của file, chỉ xử lý chuỗi ký tự.realpath -s missing.txt
    -m, –canonicalize-missingTrả về đường dẫn tuyệt đối ngay cả khi file/thư mục đó không tồn tại.realpath -m ./nofile.txt
    –relative-to=DIRHiển thị đường dẫn tương đối tính từ thư mục đích.realpath --relative-to=/home/user ./myscript.sh
    –zeroKết thúc dòng bằng ký tự NULL hay vì xuống dòng, tối ưu cho xargs.realpath --zero ./*.txt

    1. Xác định đường dẫn tuyệt đối

    Để xác định được chính xác đường dẫn tuyệt đối, bạn thực thi lệnh sau đây:

    realpath ./myscript.sh
    Xác định vị trí của file script
    Xác định vị trí của file script

    Sau đó, hệ thống sẽ trả về đường dẫn đầy đủ dạng /home/user/myscript.sh, luôn bắt đầu từ /, giúp bạn biết chính xác vị trí file script và không bị phụ thuộc vào thư mục hiện tại mà bạn đang cd vào lúc chạy lệnh.

    2. Truy vết file gốc từ Symbolic Link

    Khi bạn có một symlink và cần biết chính xác Symbolic đang trỏ đến đâu để debug cấu hình, hãy thực thi lệnh sau:

    ln -s /etc/nginx/nginx.conf ~/nginx.conf
    realpath ~/nginx.conf

    Kết quả hiển thị sẽ cho bạn biết chính xác file cấu hình gốc nằm ở đâu.

    Truy vết file gốc từ Symbolic Link
    Truy vết file gốc từ Symbolic Link

    3. Dùng trong script deploy

    Trong các script CI/CD, việc sử dụng đường dẫn tương đối có thể gây lỗi nếu thư mục thực thi thay đổi. Do đó, bạn nên sử dụng realpath để chuẩn hoá và cố định đường dẫn tuyệt đối ngay từ đầu, giúp script luôn truy cập đúng tài nguyên bất kể đang được chạy từ ngữ cảnh nào:

    # Lấy đường dẫn tuyệt đối của ./app để link luôn chính xác
    APP_PATH=$(realpath ./app)
    
    # Tạo/ghi đè symlink /var/www/current trỏ tới app
    ln -sfn $APP_PATH /var/www/current

    Sau lệnh APP_PATH=$(realpath ./app), biến $APP_PATH sẽ chứa đường dẫn tuyệt đối.​ Khi tạo symlink /var/www/current, hệ thống sẽ luôn trỏ chính xác đến thư mục build này, bất kể bạn đang đứng ở thư mục nào khi chạy lệnh.

    Dùng realpath trong script deploy
    Dùng realpath trong script deploy

    4. Xử lý file hàng loạt

    Khi xóa hoặc xử lý danh sách file có chứa khoảng trắng hoặc ký tự đặc biệt, bạn có thể kết hợp realpath với tùy chọn --zero với cú pháp lệnh như sau:

    ls *.txt | xargs realpath --zero | xargs -0 rm

    Lúc này, lệnh realpath --zero sẽ chuyển đổi tên file sang đường dẫn tuyệt đối và ngăn cách bằng ký tự NULL. Sau đó, xargs -0 rm sẽ nhận đầu vào NULL-terminated để xóa chính xác file, tránh lỗi do khoảng trắng trong tên file.

    Xử lý file hàng loạt với xargs
    Xử lý file hàng loạt với xargs

    5. Hiển thị path relative

    realpath –relative-to giúp chuyển một đường dẫn tuyệt đối thành đường dẫn tương đối so với một thư mục gốc mà bạn chỉ định. Tính năng này hữu ích khi bạn cần giữ nguyên cấu trúc thư mục tương đối để đóng gói hoặc deploy sang môi trường khác:

    realpath --relative-to=/home/user ./project/file.txt

    Kết quả sẽ được hiển thị như sau:

    Hiển thị path relative
    Hiển thị path relative

    Lưu ý khi sử dụng lệnh realpath

    • So sánh với readlink -f: Trước đây, readlink -f thường được sử dụng để giải quyết đường dẫn theo cách tương tự realpath. Tuy nhiên, realpath là công cụ hiện đại, chuẩn hóa hơn và được khuyên dùng trên các hệ thống Linux mới. Nếu script cần chạy trên các hệ thống cũ, bạn có thể cân nhắc sẻ dụng readlink -f làm phương án dự phòng.
    • Xử lý lỗi: Bạn hãy sử dụng realpath ở đầu script để chuẩn hóa các biến đường dẫn đầu vào, giúp tránh lỗi “No such file or directory” khi script thực hiện lệnh cd hoặc di chuyển file.
    • Kiểm tra file tồn tại: Nếu bạn chỉ muốn lấy đường dẫn tuyệt đối mà không quan tâm file đó có thực sự tồn tại trên ổ cứng hay không, hãy dùng cờ -m.
    Bạn nên sử dụng realpath ở đầu script để tránh lỗi "No such file or directory"
    Bạn nên sử dụng realpath ở đầu script để tránh lỗi “No such file or directory” (Nguồn: Internet)

    Câu hỏi thường gặp

    Sự khác biệt giữa realpath và readlink -f là gì?

    Về chức năng cơ bản, realpath và readlink -f đều trả về đường dẫn tuyệt đối. Tuy nhiên:
    realpath: Là công cụ hiện đại, chuẩn hóa, hỗ trợ nhiều tính năng mạnh mẽ hơn như —relative-to hay xử lý file hàng loạt với --zero, thường được khuyến nghị sử dụng trên các hệ thống Linux mới.
    – readlink -f: Là cách làm cũ trên một số hệ thống hư macOS/BSD, hành vi của readlink có thể khác biệt so với Linux, dẫn đến script thiếu tính tương thích.

    Tôi muốn lấy đường dẫn tuyệt đối cho một file log chưa được tạo ra, nhưng realpath báo lỗi thì phải xử lý như thế nào?

    Mặc định realpath sẽ kiểm tra sự tồn tại của file. Để bỏ qua bước kiểm tra này, bạn hãy thêm cờ (flag) -m với cú pháp lệnh như sau:
    realpath -m ./logs/future.log
    Kết quả sẽ trả về full path ngay cả khi thư mục logs hoặc file future.log chưa tồn tại trên ổ đĩa.

    realpath có xử lý được tên file chứa khoảng trắng không?

    Có, nhưng bạn cần cẩn thận khi truyền kết quả sang lệnh khác. Để an toàn tuyệt đối khi xử lý file có khoảng trắng hoặc ký tự đặc biệt, bạn hãy dùng cờ –zero kết hợp với xargs -0.
    Ví dụ: ls *.txt | xargs realpath --zero | xargs -0 rm
    Cờ –zero dùng ký tự NULL để ngắt dòng thay vì ký tự xuống dòng, giúp hệ thống hiểu đúng tên file có dấu cách là một file duy nhất.

    realpath đóng vai trò quan trọng trong việc đảm bảo tính chính xác của đường dẫn file trong hệ thống Linux. Việc thành thạo realpath kết hợp với xargsln sẽ giúp quy trình quản trị và deploy của bạn trở nên chuyên nghiệp và ít lỗi hơn. Chúc bạn thao tác với lệnh realpath thành công và hẹn gặp lại bạn trong các bài viết tiếp theo. Cảm ơn bạn đã theo dõi bài viết!

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Cách dùng lệnh less Linux để xem nội dung file nhanh chóng và đơn giản
    Cách dùng lệnh less Linux để xem nội dung file nhanh chóng và đơn giản

    Less Linux là một trình phân trang chạy trên dòng lệnh, cho phép xem nội dung file văn bản theo kiểu cuộn trang một cách tương tác mà không cần nạp toàn bộ file vào bộ nhớ. Trong bài viết dưới đây, mình sẽ cùng bạn tìm hiểu về những lợi ích khi dùng lệnh…

    13/03/2026

    Cách sử dụng lệnh sed Linux để biên tập dòng lệnh nhanh chóng
    Cách sử dụng lệnh sed Linux để biên tập dòng lệnh nhanh chóng

    sed Linux là một trình biên tập dòng dùng để xử lý và chỉnh sửa văn bản theo cách tự động, không tương tác trực tiếp như khi mở file bằng vim/nano. Trong bài viết dưới đây, mình sẽ cùng bạn tìm hiểu các tính năng quan trọng và hướng dẫn bạn sử dụng lệnh…

    13/03/2026

    Lệnh ln Linux là gì? Cách dùng lệnh ln chi tiết, đơn giản trong Linux
    Lệnh ln Linux là gì? Cách dùng lệnh ln chi tiết, đơn giản trong Linux

    Ln Linux là lệnh dùng để tạo liên kết giữa các file hoặc thư mục, giúp nhiều tên file cùng trỏ tới một dữ liệu mà không cần sao chép nội dung. Trong bài viết này, mình sẽ hướng dẫn bạn cách dùng lệnh ln để tạo Hard Link và Symbolic Link đơn giản, nhanh…

    13/03/2026

    Cách sử dụng lệnh locate Linux để tìm kiếm file nhanh chóng
    Cách sử dụng lệnh locate Linux để tìm kiếm file nhanh chóng

    Locate Linux là lệnh dùng để tìm kiếm đường dẫn file và thư mục nhanh chóng bằng cách tra cứu trong cơ sở dữ liệu đã được lập chỉ mục sẵn thay vì quét trực tiếp toàn bộ hệ thống file như find. Trong bài viết này, mình sẽ cùng bạn tìm hiểu chi tiết…

    13/03/2026

    linux

    lenh

    text