Lệnh rm trên Linux: tùy chọn rm -rf và cách xóa không cần xác nhận

Lệnh rm xóa tệp ngay mà không qua thùng rác. rm là viết tắt của remove, dùng để xóa tệp và thư mục; bài viết này tổng hợp cách dùng cơ bản, các tùy chọn và lý do thư mục gốc vẫn còn dù đã chạy [rm -rf /].
Trên AlmaLinux 9.8, tài khoản root có sẵn [alias rm=’rm -i’] theo mặc định, nên lệnh sẽ hỏi xác nhận trước khi xóa. Bài viết cũng hướng dẫn cách tự thêm bí danh cho những hệ điều hành Linux chưa có thiết lập này.
✅ Cách dùng cơ bản
Cách dùng cơ bản như sau.
rm -tùy chọn đối tượng xóa: File hoặc thư mục
Tệp chỉ cần ghi tên là bị xóa, còn thư mục phải thêm tùy chọn -r mới xóa được.
# Xóa tệp
rm file1
# Xóa nhiều tệp
rm file1 file2
# Xóa thư mục cùng nội dung bên trong
rm -r dir1/
# Xóa thư mục rỗng
rm -d dir1/~]# rm dir1/
rm: cannot remove 'dir1/': Is a directoryNếu chỉ định thư mục mà không có tùy chọn, thư mục sẽ không bị xóa như ở trên.
Khi xóa liên kết tượng trưng, chỉ bản thân liên kết bị xóa, còn tệp đích mà liên kết trỏ tới vẫn còn nguyên. Để kiểm tra trước và sau khi xóa, hãy dùng kèm lệnh ls.
✅ rm -rf: xóa không cần xác nhận
Khi chạy lệnh rm, bạn sẽ được hỏi [remove regular file], vì trên tài khoản root, rm được chạy qua bí danh (alias) [rm -i].
~]# rm file1
rm: remove regular file 'file1'? y
~]# alias rm
alias rm='rm -i'Khi xóa thư mục bằng tùy chọn -r, lệnh sẽ hỏi xác nhận mỗi khi đi vào thư mục và với từng tệp, nên càng nhiều tệp càng phiền.
~]# rm -r logs/
rm: descend into directory 'logs/'? y
rm: remove regular file 'logs/access.log'? y
rm: remove regular empty file 'logs/error.log'? y
rm: remove directory 'logs/'? yKhi đó, thêm cả tùy chọn -f thì lệnh sẽ xóa mà không hỏi xác nhận, và không báo lỗi dù chỉ định tệp không tồn tại.
rm -rf logs/Thêm dấu gạch chéo ngược [\] trước lệnh để bỏ qua bí danh, hoặc thêm [yes |] phía trước để y được nhập ở mỗi lần xác nhận, cũng cho kết quả tương tự.
\rm -r logs/
yes | rm -r logs/✅ Tùy chọn lệnh rm & trình mô phỏng
| Tùy chọn | Mô tả | |
|---|---|---|
| -f | --forceXóa không cần xác nhận, và không báo lỗi dù chỉ định tệp không tồn tại | |
| -i | Hỏi người dùng xác nhận mỗi lần xóaalias rm='rm -i' | |
| -I(chữ i hoa) | Chỉ hỏi xác nhận một lần khi có từ 4 tệp trở lên hoặc khi dùng cùng -r | |
| -r, -R | --recursiveXóa toàn bộ thư mục, thư mục con và tệp bên trong | |
| -d | --dirXóa thư mục rỗng | |
| -v | --verboseIn ra từng tệp và thư mục đã xóa, mỗi mục một dòng | |
| --preserve-root | Không xóa thư mục gốc (/) (mặc định) | |
| --no-preserve-root | Bỏ bảo vệ thư mục gốc (/) |
✅ rm -rf /: chống xóa thư mục gốc
Khi làm công việc hosting, có lúc sẽ xóa nhầm những tệp không được xóa. Phần lớn có thể khôi phục từ tệp sao lưu, nhưng nếu xóa thư mục gốc thì dù có snapshot, việc khôi phục vẫn rất mất công. Thực tế, đã vài lần nghe về những trường hợp chạy nhầm lệnh rm -rf mà không thể khôi phục.
Lệnh rm mặc định áp dụng tùy chọn [--preserve-root], nên dù chạy [rm -rf /] thì thư mục gốc cũng không bị xóa.
~]# rm -rf /
rm: it is dangerous to operate recursively on '/'
rm: use --no-preserve-root to override this failsafeTuy nhiên, cơ chế này không chặn được [rm -rf /*]. Shell thay [/*] bằng tên các thư mục như /bin, /etc và /home rồi mới chuyển đi, nên lệnh rm sẽ xóa từng thư mục đó chứ không phải [/].
Khi cài AlmaLinux 9.8, tệp [/root/.bashrc] có sẵn bí danh -i cho các lệnh rm, cp và mv như dưới đây. Tài khoản người dùng thường không có các bí danh này.
~]# grep alias /root/.bashrc
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'Với tài khoản hoặc hệ điều hành Linux chưa có bí danh này, chỉ cần thêm một dòng vào cuối [~/.bashrc] rồi tải lại.
# Thêm vào cuối ~/.bashrc
alias rm='rm -i'
# Tải lại
source ~/.bashrc
ℹ️ Thông báo tiếp thị liên kết
Nội dung trên trang này có chứa liên kết affiliate (tiếp thị liên kết). Khi khách truy cập mua sản phẩm hoặc dịch vụ qua các liên kết này, trang sẽ nhận hoa hồng từ bên bán. Trong quá trình đó, số tiền người mua phải trả (sẽ giảm khi có chương trình khuyến mãi ↓) không hề tăng lên. Giá, khuyến mãi và tình trạng hàng được đăng theo thời điểm viết bài và có thể khác với thực tế, vì vậy hãy kiểm tra lại lần cuối với bên bán trước khi mua. Việc chọn và đánh giá sản phẩm dựa trên tiêu chí riêng của trang; việc có nhận hoa hồng hay không không ảnh hưởng đến thứ tự giới thiệu hay nội dung đánh giá.