Lệnh rmdir: Cách để xóa thư mục trống trong VPS Linux

Tác giả: VPS chính hãng 28 tháng 11, 2023

Là người dùng Linux, chúng ta thường xuyên tương tác với các tệp và thư mục. Một thao tác phổ biến mà người dùng thực hiện là xóa các thư mục khỏi hệ thống tệp. Tuy nhiên, chúng ta phải hết sức cẩn thận khi xóa các thư mục. Bởi vì các thao tác gỡ bỏ được thực hiện bất cẩn có thể dẫn đến mất dữ liệu. Trong bài viết này, chúng ta sẽ tìm hiểu về lệnh rmdir cùng một số ví dụ thực tế có thể được sử dụng hàng ngày. 

Cách sử dụng cơ bản lệnh rmdir trong Linux

Như tên cho thấy, lệnh rmdir được sử dụng để xóa thư mục trong quản lý và sử dụng máy chủ Linux hay khi mua VPS Linux. Tuy nhiên, điều quan trọng cần lưu ý là nó chỉ có thể xóa các thư mục trống. Trong phần này chúng ta sẽ thấy cách sử dụng cơ bản của lệnh rmdir.

Cú pháp của lệnh rmdir tương tự như các lệnh Linux khác. Ở cấp độ cao, nó được chia thành hai phần – optionsarguments:

$ rmdir [OPTIONS] ... <DIRECTORY1> <DIRECTORY2> ...

Ở đây, dấu ngoặc vuông ([]) biểu thị các đối số options trong khi dấu ngoặc nhọn (<>) biểu thị các đối số arguments.

Xóa một thư mục trống trong Linux

Đầu tiên, tạo một vài thư mục trống:

$ mkdir dir1 dir2 dir3 dir4

Hãy xác minh rằng các thư mục cần thiết đã được tạo:

$ ls -l

Bây giờ, hãy xóa thư mục dir1 và xác minh rằng nó đã bị xóa:

$ rmdir dir1
$ ls -l

Theo cách tương tự, chúng ta có thể sử dụng lệnh rmdir để xóa nhiều thư mục trống cùng một lúc.

Hãy loại bỏ các thư mục còn lại:

$ rmdir dir2 dir3 dir4

Cuối cùng, xác minh rằng tất cả các thư mục đã bị xóa:

$ ls -l

Ở đây, chúng ta có thể thấy khi tìm kiếm với lệnh ls sẽ không còn hiển thị bất kỳ thư mục trống nào.

Các thư mục trống đã được loại bỏ với lệnh rmdir

Các thư mục trống đã được loại bỏ với lệnh rmdir

Sử dụng lệnh rmdir với chế độ verbose

Trong phần trước, chúng ta đã sử dụng lệnh ls để xác minh việc xóa thư mục. Tuy nhiên, sẽ không có ý nghĩa gì khi thực thi thêm một lệnh nữa chỉ để xác minh hành động của các lệnh trước đó. Trong những trường hợp như vậy, chúng ta có thể bật chế độ verbose (verbose mode) bằng cách sử dụng tùy chọn -v, tùy chọn này cung cấp chẩn đoán cho mọi thư mục được xử lý.

Hãy tạo cấu trúc thư mục giống như chúng ta đã tạo trước đó:

$ mkdir dir1 dir2 dir3 dir4

Bây giờ, hãy xóa các thư mục đã bật chế độ verbose:

$ rmdir -v dir1 dir2 dir3 dir4
$ ls -l

Từ kết quả trên, chúng ta có thể kết luận rằng tất cả các thư mục đã bị xóa.

=>> Cách nhanh nhất để tìm tệp trùng lặp trong Linux

Chế độ verbose sẽ cho biết các thư mục đã bị xóa

Chế độ verbose sẽ cho biết các thư mục đã bị xóa

Xóa các thư mục con trống trong Linux

Chúng ta thường tạo các thư mục con trên một hệ thống tệp, điều này cho phép chúng ta sắp xếp dữ liệu của mình một cách thích hợp. Hãy xem cách làm việc với các thư mục con trống. Như đã thảo luận trong ví dụ đầu tiên, chúng ta có thể xóa nhiều thư mục bằng lệnh rmdir. Tuy nhiên, tình hình trở nên phức tạp khi các thư mục con có số lượng lớn. Trong những trường hợp như vậy, chúng ta có thể sử dụng tùy chọn -p để xóa thư mục và tất cả thư mục gốc của nó. Hãy hiểu điều này bằng một ví dụ.

Đầu tiên, tạo cấu trúc thư mục con:

$ mkdir -p dir1/dir2/dir3/dir4/dir5

Trong ví dụ này, chúng tôi đã sử dụng tùy chọn -p với lệnh mkdir để tạo cấu trúc thư mục con.

Hãy xóa tất cả các thư mục này trong một lần:

$ rmdir -p -v dir1/dir2/dir3/dir4/dir5

rmdir: removing directory, 'dir1/dir2/dir3/dir4/dir5'
rmdir: removing directory, 'dir1/dir2/dir3/dir4'
rmdir: removing directory, 'dir1/dir2/dir3'
rmdir: removing directory, 'dir1/dir2'
rmdir: removing directory, 'dir1'

Ở đây, chế độ verbose sẽ loại bỏ thư mục dir5 và tất cả các thư mục mẹ của nó.

Chế độ verbose sẽ giúp loại bỏ các thư mục con

Chế độ verbose sẽ giúp loại bỏ các thư mục con

Xử lý thư mục không trống

Chúng ta đã biết rằng rmdir chỉ có thể xóa các thư mục trống. Mọi nỗ lực xóa một thư mục không trống sẽ dẫn đến lỗi. Mặc dù điều này giúp bảo vệ khỏi mất dữ liệu nhưng trong một số trường hợp hiếm gặp, nó có thể gây ra sự cố. Ví dụ: nếu bạn cố gắng xóa một thư mục không trống khỏi tập lệnh đang được thực thi thì công việc sẽ báo lỗi.

Để mô phỏng điều này, hãy thử xóa thư mục không trống:

$ mkdir -p dir1/dir2/dir3/dir4/dir5
$ rmdir dir1

rmdir: failed to remove 'dir1': Directory not empty

Đối với những trường hợp lỗi như vậy, chúng ta có thể sử dụng tùy chọn –ignore-fail-on-non-empty, tùy chọn này sẽ bỏ qua tất cả các lỗi xảy ra do thư mục không trống.

Hãy sử dụng tùy chọn này với lệnh và kiểm tra giá trị trả về:

$ rmdir --ignore-fail-on-non-empty dir1
$ echo $?

0

Sử dụng biểu thức chính quy trong lệnh rmdir

Tương tự như các lệnh Linux khác, chúng ta có thể sử dụng biểu thức chính quy với lệnh rmdir. Chúng ta hãy xem cách sử dụng hai biểu thức chính quy sau:

  • ? – Nó khớp chính xác với một ký tự.
  • * – Nó khớp với 0 hoặc nhiều lần xuất hiện của các ký tự trước đó.

Đầu tiên, tạo một vài thư mục trống:

$ mkdir dir1 dir2 dir-01 dir-02

Bây giờ, hãy sử dụng ‘?‘ biểu thức chính quy với chuỗi ‘dir’ để xóa thư mục dir1dir2:

$ rmdir -v dir?

rmdir: removing directory, 'dir1'
rmdir: removing directory, 'dir2'

Ở đây, chúng ta có thể thấy lệnh đã loại bỏ đúng thư mục.

Tiếp theo, sử dụng biểu thức chính quy ‘*’ để xóa hai thư mục còn lại:

$ rmdir -v dir-*

rmdir: removing directory, 'dir-01'
rmdir: removing directory, 'dir-02'

Trong ví dụ này, chúng ta có thể thấy rằng hai thư mục còn lại đã bị xóa. Có thể thấy lệnh không báo cáo bất kỳ lỗi nào và giá trị trả về bằng 0 cho biết việc thực thi lệnh thành công. Tuy nhiên, điều quan trọng cần lưu ý là tùy chọn này chỉ khắc phục lỗi và không xóa thư mục không trống.

Trong bài viết này chúng ta đã thấy cách sử dụng cơ bản của lệnh rmdir. Mọi câu hỏi cần giải đáp vui lòng gửi về đội ngũ kỹ thuật qua vpschinhhang.com, chúng tôi luôn ở đây 24/7 để giúp bạn những vấn đề trong quản lý và sử dụng máy chủ lưu trữ VPS Windows/Linux. Cảm ơn đã theo dõi bài viết!