5 ví dụ về lệnh rmdir trên Centos / Ubuntu / Debian / Fedora
Đã là người dùng Linux thì việc tương tác với các tệp và thư mục xảy ra rất thường xuyên. 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 và lệnh rmdir đảm nhiệm thực hiện điều đó. Tuy nhiên, chúng ta cần phải cẩn thận hơn khi thực hiện việc xóa các thư mục này, vì việc xóa một cách không cẩn thận có thể dẫn đến mất dữ liệu.
Lệnh rmdir là gì?
Cú pháp của lệnh rmdir tương tự như các lệnh Linux khác. Ở mức cao, nó được chia thành hai phần - tùy chọn (options) và đối số (arguments).
$ rmdir [OPTIONS] ... <DIRECTORY1> <DIRECTORY2> …
Ở đây, dấu ngoặc vuông ([]) đại diện cho các đối số tùy chọn trong khi dấu ngoặc nhọn (<>) đại diện cho các đối số bắt buộc.
5 cách sử dụng lệnh rmdir phổ biến
Xóa thư mục trống
Bước đầu tiên bạn cần tạo một thư mục trống:
$ mkdir dir1 dir2 dir3 dir4
Xác minh các thư mục cần thiết đã tạo bằng lệnh ls:
$ 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
Áp dụng tương tự, bạn có thể xóa nhiều thư mục trống cùng một lúc với lệnh rmdir. Xóa 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
Bạn có thể thấy rằng lệnh ls không hiển thị bất kỳ thư mục nào.
Cách sử dụng lệnh rmdir trong Linux
Chế độ verbose của lệnh rmdir (rmdir verbose mode)
Ở trên, lệnh ls được sử dụng để xác nhận việc xóa thư mục. Tuy nhiên, việc thực hiện một lệnh khác chỉ để xác nhận hành động của các lệnh trước không có ý nghĩa.
Trong trường hợp như vậy, chúng ta có thể kích hoạt chế độ verbose bằng cách sử dụng tùy chọn -v, cho phép hiển thị thông tin chẩn đoán cho mỗi thư mục được xử lý. Tạo cùng một cấu trúc thư mục mà đã tạo trước đó:
$ mkdir dir1 dir2 dir3 dir4
Bây giờ, hãy xóa các thư mục khi bật chế độ verbose:
$ rmdir -v dir1 dir2 dir3 dir4 $ ls -l
Lúc này bạn có thể kết luận rằng tất cả các thư mục đã bị xóa.
Chế độ verbose của lệnh rmdir
Xóa các thư mục con trống
Chúng ta thường tạo các thư mục con trên hệ thống tệp, cho phép chúng ta tổ chức dữ liệu một cách hợp lý. Như đã nói ở trên, bạn có thể xóa nhiều thư mục bằng cách sử dụng lệnh rmdir. Tuy nhiên, tình huống trở nên phức tạp khi số lượng thư mục con lớn.
Trong trường hợp như vậy, bạn có thể sử dụng tùy chọn -p, cho phép xóa thư mục và tất cả các thư mục cha của nó. Ví dụ dưới đây sẽ làm rõ điều này. Trước tiên, hãy tạo một cấu trúc thư mục con:
$ mkdir -p dir1/dir2/dir3/dir4/dir5
Tùy chọn -p đã sử dụng kết hợ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'
Tại đây, chế độ verbose xóa thư mục dir5 và tất cả các thư mục cha của nó.
Xóa các thư mục con trống trong Linux
Xử lý lỗi thư mục không trống
Chúng ta đã biết rằng lệnh rmdir chỉ có thể xóa các thư mục trống. Bất kỳ cố gắng xóa một thư mục không trống sẽ gây ra lỗi. Mặc dù điều này bảo vệ dữ liệu khỏi mất mát, nhưng trong một số trường hợp hiếm có thể tạo ra vấn đề.
Ví dụ, nếu chúng ta cố gắng xóa một thư mục không trống từ kịch bản đang được thực thi bởi Jenkins 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, nó 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
Trong ví dụ này, chúng ta có thể thấy rằng lệnh không báo cáo bất kỳ lỗi nào và giá trị trả về là zero, cho thấy lệnh đã được thực hiện thành công. Tuy nhiên, điều quan trọng cần lưu ý là tùy chọn này chỉ tắt thông báo lỗi mà không xóa thư mục không trống đi.
lệnh rmdir – Lỗi thư mục không trống
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. Hãy xem cách sử dụng hai biểu thức chính quy sau đây:
? - Nó khớp chính xác một ký tự.
* - Nó khớp với không hoặc nhiều ký tự trước đó.
Trước tiên, hãy tạo một số 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 các thư mục dir1 và dir2:
$ rmdir -v dir? rmdir: removing directory, 'dir1' rmdir: removing directory, 'dir2'
Ở đây, chúng ta có thể thấy rằng lệnh đã xóa các thư mục đúng. Tiếp theo, hãy sử dụng biểu thức chính quy '*' để xóa hai thư mục khác:
$ 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 đã được xóa.
Sử dụng biểu thức chính quy trong lệnh rmdir
Trong phần này, chúng ta chỉ thảo luận về việc sử dụng hai biểu thức chính quy cơ bản với lệnh rmdir. Tuy nhiên, chúng ta cũng có thể sử dụng các biểu thức chính quy nâng cao khác với lệnh rmdir.
Mọi người cũng tìm kiếm: rmdir ubuntu, rmdir, rmdir -r, rmdir -rf, ubuntu rmdir