Lệnh rm
trong Linux (viết tắt của remove) là một trong các lệnh cơ bản nhất được sử dụng để xóa file, thư mục (directory) và liên kết tượng trưng (symlink) trong hệ điều hành Linux. Hãy cùng Vietnix tìm hiểu thêm về cách sử dụng lệnh rm
trong Linux qua bài viết sau đây.
Lệnh rm trong Linux là gì?
Lệnh rm trong Linux (viết tắt của remove) được sử dụng để xóa các đối tượng như file, thư mục, liên kết tượng trưng ra khỏi hệ thống file trên hệ điều hành Unix và Linux. Chi tiết hơn, lệnh rm giúp người dùng xóa tham chiếu trừng lặp đến các đối tượng khỏi hệ thống file, một đối tượng đó có thể có nhiều tham chiếu (file có hai tên khác nhau).
Cú pháp cơ bản lệnh rm trong Linux
rm [OPTION]... FILE...
Ngoài ra, bạn cũng có thể tham khảo các câu lệnh trong Linux cơ bản để hiểu thêm chi tiết về hệ điều hành.
Tùy chọn sử dụng lệnh rm trong Linux
Tùy chọn | Mô tả |
- i | Xác nhận trước khi xóa từng tệp (xóa tương tác) bằng phím y (mặc định) |
-f | Thông báo xác nhận xóa (bắt buộc) với tệp được bảo vệ chống ghi |
-r | Thực hiện duyệt cây, xóa tất cả các file thư mục con (theo hướng đệ quy) |
–version | hiển thị phiên bản rm hiện đang chạy trên hệ thống |
- | Dấu hiệu hiển thi để hệ thống không hiểu sai tên tệp là một tùy chọn |
5 ví dụ về cách sử dụng lệnh rm trong Linux
Ví dụ 1: Xoá một file bất kỳ trong Linux
Để xóa một lệnh bất kỳ trong Linux bạn chỉ cần áp dụng cú pháp cơ bản là:
rm [OPTIONS]... FILE...
Theo mặc định thì lệnh rm
không xóa thư mục, đồng thời cũng không yêu cầu người dùng xác thực việc xóa file.
Để xóa một file duy nhất bất kỳ, ta có thể dùng lệnh rm
như sau:
rm filename
Trong đó filename là tên file cần xóa. Nếu không có quyền truy cập vào thư mục cha thì người dùng sẽ xuất hiện lỗi:
Operation not permitted.
Nếu file không được bảo vệ khỏi thao tác ghi (write) thì lệnh rm
sẽ xóa mà không có thông báo gì.
Đối với các file được bảo vệ thì lệnh sẽ yêu cầu xác nhận:
rm: remove write-protected regular empty file 'filename'?
Nhập y rồi nhấn Enter để xác nhận xóa file.
Bên cạnh đó ta còn có thể dùng tùy chọn -f
để yêu cầu lệnh rm
không cần thông báo, đồng thời bỏ qua các file không tồn tại:
rm -f filename
Nếu muốn xem thêm thông tin về quá trình xóa file, ta có thể thêm optiuiru qd-v
(verbose):
rm -v filename
Output như sau:
removed 'filename'
Ví dụ 2: Xóa nhiều file cùng một lúc bằng lệnh rm
Khác với lệnh unlink
, lệnh rm
cho phép ta xóa nhiều file một lúc bằng cách truyền các tên file vào tham số, ngăn cách nhau bởi một khoảng trắng:
rm filename1 filename2 filename3
Ngoài ra ta cũng có thể dùng biểu thức chính quy (regex) để khớp nhiều tên file. Giả sử ta cần xóa các file có đuôi “.webp” trong thư mục hiện tại:
rm -v *.webp
Ví dụ 3: Xóa thư mục rỗng bằng lệnh rm trong Linux
Sử dụng lệnh rm trong Linux để xóa một hay nhiều thư mục rỗng, ta có thể nhập tham số -d
vào cú pháp như sau:
rm -d dirname
Khi đó, lệnh rm -d
sẽ có vai trò xóa file và xóa thư mục trong Linux như lệnh rmdir
. Mặt khác, để xóa các thư mục khác rỗng thì bạn cần xóa mọi file theo kiểu đệ quy bằng tùy chọn -r
(recursive):
rm -r dirname
Ví dụ 4: Hiển thị thông báo đến người dùng khi thực hiện xóa file
Như đã đề cập ở trên, theo mặc định thì lệnh rm
sẽ không thông báo gì cho người dùng trước khi thực hiện xóa file hay thư mục. Để nhận được thông báo, bạn cần nhập thêm tùy chọn -i
để thông báo cho người dùng:
rm -i filename1 filename2
Nhập y rồi nhấn Enter để xác nhận:
rm: remove regular empty file 'filename1'?
rm: remove regular empty file 'filename2'?
Khi xóa nhiều hơn 3 file hoặc xóa thư mục theo kiểu đệ quy, ta có thể rút gọn thông báo bằng option -i
.
rm -i text0.pdf text2.pdf
Bây giờ ta sẽ nhận được thông báo có dạng như sau:
rm: remove write-protected regular file 'text0.pdf?
rm: remoe regular file 'text2.pdf'?
Ví dụ 5: Bỏ qua thao tác nhận thông báo xóa dữ liệu
Nếu thư mục hay file được chỉ định nằm bên trong một thư mục được bảo vệ khỏi thao tác ghi thì lệnh rm
sẽ hiện thông báo yêu cầu người dùng xác nhận. Để bỏ qua bước này, ta có thể nhập tham số -f
như sau:
rm -rf dirname
Tuy nhiên, Vietnix không khuyến khích bạn sử dụng lệnh này vì có nguy cơ vô tình xóa các file dữ liệu quan trọng.
Câu hỏi thường gặp
Bạn có thể kết hợp rm với các biểu thức chính quy để khớp tên file phức tạp hơn không?
Có thể. Kết hợp với biểu thức chính quy giúp bạn xóa một số file hiệu quả với số lượng lớn cùng một thời điểm.
Linux có biểu tượng thư mục như Windows không? Gợi ý những cách khôi phục file đã xóa.
Câu trả lời là không. Bạn khôi phục tệp đã xóa trong Linux trên hệ thống với nhiều cách khác nhau: Công cụ phục hồi dữ liệu; kiểm tra bản sao lưu,…
Kết luận
Bài viết này đã hướng dẫn sử dụng lệnh rm
trong Linux cho nhiều trường hợp khác nhau: xóa một file, xóa nhiều file, xóa thư mục,… Tuy nhiên, khi xóa bất kỳ dữ liệu nào trên hệ thống thì người dùng cần phải thực hiện vô cùng cẩn thận vì quá trình khôi phục không hề dễ dàng. Chúc các bạn thành công!