Liên hệProfile
Danh mục

Mục Lục

    Cách xóa file và thư mục nhanh chóng, an toàn với lệnh rm trong Linux

    Nguyễn Hưng

    Ngày đăng:

    13/01/2026

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

    13/01/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/01/2026

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

    13/01/2026

    Mục lục

    Lệnh rm trong Linux là công cụ dòng lệnh dùng để xóa file và thư mục trực tiếp khỏi hệ thống tập tin. Khi sử dụng đúng cách, rm giúp bạn dọn dẹp dữ liệu nhanh chóng, tiết kiệm tài nguyên và hạn chế rủi ro thao tác thừa so với các phương pháp thủ công. Trong bài viết này, mình sẽ cùng bạn tìm hiểu cách dùng lệnh rm sao cho vừa hiệu quả, vừa an toàn trong quá trình quản lý file và thư mục trên Linux.

    Những điểm chính

    • Khái niệm: Hiểu rõ rm là lệnh dùng để xóa vĩnh viễn file, thư mục và các liên kết tượng trưng trên hệ thống file.
    • Các tùy chọn phổ biến: Có được một bảng tra cứu nhanh các tùy chọn quan trọng, giúp bạn tùy chỉnh việc xóa một cách linh hoạt và an toàn.
    • Các chức năng chính: Nắm được các chức năng cốt lõi của lệnh rm, từ xóa file đơn lẻ, xóa nhiều file, đến xóa thư mục và yêu cầu xác nhận.
    • Cách thiết lập nguyên tắc an toàn: Biết cách sử dụng chế độ tương tác (-i) để giảm thiểu rủi ro mất dữ liệu khi thao tác thủ công.
    • Các ví dụ sử dụng thực tế: Biết cách sử dụng lệnh rm trong thực tế, từ xóa file/thư mục, xóa cưỡng chế, đến việc kết hợp với các lệnh khác như grep, xargsfind.
    • Cách thiết lập lớp bảo vệ dữ liệu: Học cách tạo alias an toàn và giả lập thùng rác để tăng cường bảo vệ dữ liệu.
    • Lưu ý khi sử dụng: Nắm được các lưu ý quan trọng để sử dụng rm một cách an toàn, tránh các rủi ro như xóa nhầm do biến rỗng hoặc ký tự đại diện.
    • Câu hỏi thường gặp: Giải đáp các thắc mắc liên quan đến lệnh rm trong Linux.

    Lệnh rm trong Linux là gì?

    Lệnh rm trong Linux là viết tắt của từ “remove”, được dùng để xóa các đối tượng như file, thư mục và các liên kết tượng trưng từ hệ thống file trên Unix và Linux. Đây là công cụ cơ bản và cần thiết trong Linux để quản lý các file không cần thiết hoặc dọn dẹp hệ thống file. Tuy nhiên, do tính chất không thể khôi phục, người dùng nên sử dụng lệnh này cẩn thận và xem xét kỹ lưỡng trước khi thực thi để tránh xóa nhầm các file quan trọng.

    Cú pháp thực hiện lệnh rm như sau:

    rm [TÙY_CHỌN]... TỆP…

    Trong đó:

    • [TÙY_CHỌN]…: Gồm các tùy chọn bổ sung dùng để điều chỉnh cách thức hoạt động của quá trình xóa file.
    • TỆP…: Chỉ định danh sách các file hoặc thư mục mà bạn muốn xóa. Bạn có thể nhập một hoặc nhiều file, với mỗi file được ngăn cách bằng dấu cách.
    Lệnh rm trong hệ điều hành Linux là viết tắt của từ "remove"
    Lệnh rm trong hệ điều hành Linux là viết tắt của từ “remove”

    Các tùy chọn lệnh rm phổ biến

    FlagTên đầy đủChức năng kỹ thuậtVí dụ minh họa
    -iInteractiveChế độ tương tác: Hỏi xác nhận trước khi xóa từng file.rm -i config.conf
    -fForceBắt buộc xóa: Bỏ qua các file không tồn tại, không hiển thị cảnh báo, không hỏi xác nhận.rm -f file
    -r / -RRecursiveĐệ quy: Xóa thư mục và toàn bộ nội dung bên trong.rm -r folder
    -vVerboseHiển thị chi tiết: In tên các file đang được xóa ra màn hình.rm -v file.txt
    -dDirectoryChỉ xóa thư mục khi rỗng.rm -d empty_dir

    Các chức năng chính của lệnh rm

    Dưới đây là các chức năng chính của lệnh rm:

    • Xóa một file đơn lẻ: Bạn có thể xóa file cụ thể nhanh chóng mà không cần xác nhận, trừ khi hệ thống yêu cầu xác nhận do quyền truy cập hoặc cấu hình tương tác.
    • Xóa nhiều file cùng lúc: Bạn có thể thực hiện xóa đồng thời nhiều file bằng cách liệt kê tên của chúng hoặc sử dụng ký tự đại diện để chọn các nhóm file có cùng định dạng.
    • Xóa thư mục rỗng: Để có thể xóa các thư mục không chứa dữ liệu, bạn có thể sử dụng tùy chọn chuyên biệt tương tự như chức năng của lệnh rmdir.
    • Xóa thư mục chứa dữ liệu: Bạn có thể sử dụng tùy chọn đệ quy để xóa toàn bộ thư mục cùng với tất cả các file và thư mục con nằm bên trong.
    • Yêu cầu xác nhận trước khi xóa: Chế độ tương tác sẽ buộc hệ thống phải hỏi ý kiến người dùng trước khi thực hiện xóa đối với từng file riêng lẻ.
    • Hiển thị chi tiết quá trình: Bạn có thể kích hoạt chế độ hiển thị để theo dõi tên của từng file cụ thể trong khi chúng đang bị hệ thống xóa bỏ.
    • Bắt buộc xóa không cần xác nhận: Tùy chọn cưỡng chế cho phép lệnh xóa bỏ qua mọi thông báo xác nhận kể cả với file bị hạn chế quyền ghi (trong phạm vi cho phép), tuy nhiên bạn cần thận trọng để tránh mất dữ liệu.
    • Xóa thư mục được bảo vệ: Bạn có thể kết hợp các tùy chọn để xóa những thư mục bị giới hạn quyền truy cập, nhưng thao tác này không được khuyến khích do rủi ro xóa nhầm cao.
    • Xóa số lượng lớn với một lần xác nhận: Khi xóa nhiều file hoặc thư mục cùng lúc, hệ thống có thể được cấu hình để chỉ hiển thị một thông báo xác nhận duy nhất thay vì hỏi lại cho từng file. 
    Lệnh rm có nhiều chức năng quan trọng
    Lệnh rm có nhiều chức năng quan trọng (Nguồn: Internet)

    Cách thiết lập nguyên tắc an toàn khi sử dụng lệnh rm

    Để giảm thiểu tối đa nguy cơ mất dữ liệu trong quá trình vận hành, bạn nên sử dụng chế độ tương tác cho mọi thao tác xóa thủ công bằng lệnh rm.

    rm -i file

    Ở chế độ này, tùy chọn -i buộc hệ thống tạm dừng và yêu cầu xác nhận y/n trước khi xóa bất kỳ file nào. Đây là lớp bảo vệ cuối cùng chống lại các lỗi gõ nhầm lệnh hoặc chọn sai file, đặc biệt quan trọng khi thao tác trên các file cấu hình và dữ liệu quan trọng trong môi trường Production.

    1. Xóa file đơn lẻ

    Để xóa trực tiếp file mà không có bất kỳ thông báo nào, bạn thực thi lệnh sau:

    rm app.log
    Xóa file đơn lẻ
    Xóa file đơn lẻ

    2. Xóa an toàn có xác thực

    Sử dụng lệnh sau khi bạn cần xóa file ở chế độ tương tác, tức là hệ thống sẽ hỏi lại bạn trước khi thực sự xóa file, giúp giảm rủi ro xóa nhầm các file cấu hình quan trọng trong hệ thống.

    rm -i database.conf

    Màn hình sẽ hiển thị thông báo: rm: remove regular file 'database.conf'? Sau khi hiển thị thông báo xác nhận, hệ thống sẽ chờ người dùng nhập phản hồi. Nếu bạn nhập y và nhấn Enter, file sẽ bị xóa; ngược lại, nếu nhập n hoặc chỉ nhấn Enter, thao tác xóa sẽ bị hủy và file được giữ nguyên.

    Xóa an toàn có xác thực
    Xóa an toàn có xác thực

    3. Xóa thư mục chứa dữ liệu

    Lệnh rm -r old_logs/ được sử dụng để xóa một thư mục cùng với toàn bộ file và thư mục con nằm bên trong. Tùy chọn -r cho phép lệnh rm duyệt đệ quy toàn bộ cây thư mục, giúp bạn xóa hoàn toàn cấu trúc thư mục old_logs/.:

    rm -r old_logs/
    Xóa thư mục chứa dữ liệu
    Xóa thư mục chứa dữ liệu

    Trong thực tế, lệnh này chỉ nên dùng khi bạn chắc chắn rằng toàn bộ dữ liệu bên trong thư mục không còn giá trị sử dụng. Đặc biệt trong môi trường Production, bạn nên kết hợp thêm cờ tương tác -i hoặc kiểm tra kỹ đường dẫn trước khi thực thi để tránh xóa nhầm dữ liệu quan trọng.

    4. Xóa cưỡng chế

    Lệnh xóa cưỡng chế thường được sử dụng trong các script CI/CD để dọn dẹp thư mục build hoặc cache, nơi dữ liệu có thể bị xóa hoàn toàn mà không cần giữ lại. Tuy nhiên, trước khi chạy, bạn hãy kiểm tra cẩn thận biến đường dẫn để tránh trường hợp trỏ nhầm sang các thư mục quan trọng trong hệ thống.

    rm -rf /tmp/cache/

    Trong đó:

    • -r: Duyệt và xóa toàn bộ cây thư mục, bao gồm tất cả file và thư mục con bên trong.
    • -f: Bỏ qua mọi cảnh báo, không báo lỗi nếu file không tồn tại hoặc bị hạn chế quyền và không yêu cầu xác nhận từ người dùng.
    Xóa cưỡng chế
    Xóa cưỡng chế

    5. Kết hợp với grep và xargs

    Kết hợp với grep và xargs cho phép bạn lọc file theo mẫu rồi chuyển danh sách đó cho rm để xóa hàng loạt một cách linh hoạt. Cú pháp như sau:

    ls | grep ".tmp$" | xargs rm -v

    Trong đó:

    • grep ".tmp$": Lọc danh sách và chỉ lấy file đuôi .tmp.
    • xargs: Xây dựng lệnh rm cho danh sách tìm được.
    Kết hợp với grep và xargs
    Kết hợp với grep và xargs

    6. Tìm và xóa bằng lệnh find

    Lệnh dưới đây sử dụng find để dò tìm các file log cũ có đuôi .old nằm sâu trong nhiều lớp thư mục con, sau đó tiến hành xóa. Cú pháp như sau:

    find /var/log -name "*.old" -exec rm -v {} \;

    Lệnh này sẽ tìm toàn bộ file khớp mẫu *.old trong cây thư mục /var/log và gọi rm -v cho từng file, đồng thời in ra tên các file đã xóa.

    Tìm và xóa bằng lệnh find
    Tìm và xóa bằng lệnh find

    Trong trường hợp muốn tối ưu hiệu năng, bạn có thể dùng trực tiếp tùy chọn -delete của find để bỏ qua bước gọi rm trung gian.​ Cách này giúp thao tác xóa diễn ra nhanh và gọn hơn, đặc biệt hiệu quả khi bạn đang xử lý số lượng file lớn trong môi trường hệ thống. Cú pháp như sau:

    find /var/log -name "*.old" -delete
    Dùng tùy chọn -delete của find
    Dùng tùy chọn -delete của find

    7. Xóa có điều kiện

    Để xóa tất cả các file trong thư mục ngoại trừ một file cụ thể, bạn thực hiện lệnh sau:

    find . ! -name "nginx_log_2025.old" -type f -exec rm {} \;
    Xóa có điều kiện
    Xóa tất cả các file trong thư mục ngoại trừ một file cụ thể

    8. Xóa file và giữ lại thư mục

    Để xóa tất cả file bên trong nhưng không xóa thư mục, bạn thực thi lệnh sau:

    rm -v /data/uploads/*
    xóa tất cả file bên trong nhưng không xóa thư mục
    Xóa tất cả file bên trong nhưng không xóa thư mục

    Cách thiết lập lớp bảo vệ dữ liệu khi dùng lệnh rm

    1. Thiết lập Alias an toàn

    Bạn có thể ghi đè hành vi mặc định của lệnh rm bằng chế độ tương tác rm -i trong file cấu hình shell để giảm thiểu rủi ro mất dữ liệu trên môi trường Production. Cú pháp của lệnh như sau:

    echo "alias rm='rm -i'" >> ~/.bashrc
    source ~/.bashrc
    Thiết lập Alias an toàn
    Thiết lập Alias an toàn

    2. Giả lập thùng rác

    Thay vì xóa vĩnh viễn, bạn có thể chuyển hướng lệnh rm sang mv để di chuyển file vào một thư mục tạm, cho phép khôi phục khi lỡ xóa nhầm. Cú pháp như sau:

    alias rm='mv -t ~/.trash'
    Giả lập thùng rác
    Giả lập thùng rác

    Lưu ý

    Bạn cần tạo sẵn thư mục ~/.trash và xây dựng quy trình dọn dẹp định kỳ để tránh chiếm dụng dung lượng đĩa không cần thiết.

    Lưu ý khi sử dụng lệnh rm trong Linux

    Dưới đây là những lưu ý kỹ thuật quan trọng khi sử dụng lệnh rm trong Linux:

    • Xóa không thể khôi phục: Lệnh rm thực hiện ngắt liên kết Inode ngay lập tức, khiến dữ liệu bị xóa vĩnh viễn và không thể khôi phục thông qua cơ chế thùng rác thông thường.
    • Rủi ro với biến rỗng trong Script: Việc sử dụng biến môi trường chưa được kiểm soát trong câu lệnh rm -rf $DIR/ có thể dẫn đến việc xóa toàn bộ hệ thống gốc (/) nếu biến $DIR vô tình bị rỗng.
    • Kiểm soát ký tự đại diện: Bạn cần kiểm tra kỹ danh sách file bằng lệnh ls trước khi sử dụng rm * để tránh việc Shell mở rộng vùng chọn xóa ngoài ý muốn.
    • Quyền hạn trên thư mục cha: Người dùng có quyền ghi trên một thư mục có thể xóa bất kỳ file nào bên trong, ngay cả khi họ không phải là chủ sở hữu của các file đó.
    • Xử lý file ẩn: Ký tự đại diện mặc định * thường bỏ qua các file ẩn, do đó bạn cần chỉ định mẫu cụ thể nếu muốn xóa sạch thư mục.
    • Thận trọng với quyền Root: Việc kết hợp sudo với lệnh rm sẽ bỏ qua mọi cảnh báo bảo vệ quyền hạn, do đó bạn phải xác thực tuyệt đối đường dẫn trước khi nhấn Enter.
    Bạn cần lưu ý khi xử lý file trước khi sử dụng lệnh rm
    Bạn cần lưu ý khi xử lý file trước khi sử dụng lệnh rm (Nguồn: Internet)

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

    Làm thế nào để xóa một file có tên bắt đầu bằng dấu gạch ngang

    Nếu bạn chạy rm -file.txt, hệ thống sẽ hiểu lầm tên file là một tùy chọn và báo lỗi. Giải pháp là bạn hãy sử dụng dấu gạch đôi — để báo hiệu kết thúc phần tùy chọn hoặc sử dụng đường dẫn tương đối.
    Cách 1: rm — -file.txt
    Cách 2: rm ./-file.txt

    Tại sao vẫn có thể xóa một file được set quyền “Read-only” (444) mà không cần dùng sudo?

    Trong Linux, khả năng xóa một file không phụ thuộc vào quyền đối với file, mà phụ thuộc vào quyền ghi của thư mục chứa file đó. Nếu bạn có quyền ghi trên thư mục cha, bạn có thể xóa bất kỳ file nào bên trong, kể cả khi file không thuộc quyền sở hữu của bạn.

    Làm sao để khắc phục lỗi “Argument list too long” khi xóa hàng triệu file bằng lệnh rm *.log?

    Lỗi này xảy ra do Shell có giới hạn về số lượng đối số truyền vào một lệnh. Khi dấu * mở rộng ra hàng triệu file đã vượt quá bộ đệm của Shell. Để khắc phục, bạn sử dụng lệnh find kết hợp với xargs hoặc -delete để xử lý từng phần. Cú pháp lệnh như sau:
    find . -name “*.log” -print0 | xargs -0 rm

    Lệnh rm trong Linux là một công cụ quản lý file mạnh mẽ nhưng cũng tiềm ẩn nhiều rủi ro. Do đó, việc nắm vững ý nghĩa của các tham số kỹ thuật và tuân thủ quy trình xác thực trước khi xóa là yêu cầu bắt buộc đối để đảm bảo tính toàn vẹn và an toàn cho dữ liệu. 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 sử dụng fping để kiểm tra trạng thái của nhiều host cùng lúc
    Cách sử dụng fping để kiểm tra trạng thái của nhiều host cùng lúc

    fping là phiên bản mở rộng của lệnh ping, được dùng để kiểm tra trạng thái của nhiều địa chỉ IP hoặc domain cùng lúc nhanh chóng. Trong bài viết này, mình sẽ cung cấp một hướng dẫn toàn diện về fping, từ việc định nghĩa, cài đặt, cho đến cách khai thác các tính…

    05/02/2026

    Hướng dẫn sử dụng lệnh uptime Linux để kiểm tra thời gian hoạt động của hệ thống
    Hướng dẫn sử dụng lệnh uptime Linux để kiểm tra thời gian hoạt động của hệ thống

    Lệnh uptime Linux là một công cụ dòng lệnh giúp kiểm tra nhanh chóng thời gian hoạt động của máy chủ kể từ lần khởi động gần nhất, thường được sử dụng trong các công việc giám sát, quản lý và đánh giá hiệu suất hoạt động của máy chủ Linux. Trong bài viết này,…

    05/02/2026

    Cách sử dụng lệnh stat Linux chi tiết và đơn giản
    Cách sử dụng lệnh stat Linux chi tiết và đơn giản

    Lệnh stat trong Linux là một tiện ích dòng lệnh dùng để hiển thị thông tin chi tiết về một file hoặc thư mục, cung cấp các thuộc tính như kích thước file, quyền truy cập, quyền sở hữu, các dấu thời gian liên quan đến lần truy cập, chỉnh sửa và thay đổi metadata…

    05/02/2026

    Hướng dẫn sử dụng lệnh rmdir để xóa thư mục trong Linux chi tiết
    Hướng dẫn sử dụng lệnh rmdir để xóa thư mục trong Linux chi tiết

    Lệnh rmdir là một công cụ dòng lệnh cơ bản trong hệ điều hành Linux, được thiết kế chuyên biệt để giúp bạn gỡ bỏ các thư mục trống khỏi hệ thống một cách an toàn. rmdir sẽ kiểm tra và chỉ thực hiện lệnh xóa khi thư mục thực sự không chứa tệp tin…

    05/02/2026

    linux

    lenh

    text