Lệnh rmdir trong Linux - Ví dụ dành cho người mới

Dưới dạng người dùng Linux, chúng ta tương tác với các tệp và thư mục thường xuyên. Một hoạt động thông thường 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 cực kỳ cẩn thận khi xóa các thư mục. Vì hoạt động xóa được thực hiện không cẩn thận có thể dẫn đến mất dữ liệu.

Trong bài viết dành cho người mới học này, chúng ta sẽ tìm hiểu về lệnh rmdir. Chúng ta cũng sẽ thảo luận về một số ví dụ thực tế có thể được sử dụng trong công việc hàng ngày.

Cú pháp của lệnh rmdir tương tự với các lệnh Linux khác. Ở mức độ cao, nó được chia thành hai phần – tùy chọn options và các đối số arguments:

$ rmdir [OPTIONS] ...   ...

Ở đây, cặp 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.

Sử dụng cơ bản của lệnh rmdir trong Linux

Như tên cho thấy, lệnh rmdir được sử dụng để xóa thư mục. Tuy nhiên, điều quan trọng cần lưu ý là nó chỉ có thể xóa các thư mục rỗng. Ở phần này, chúng ta sẽ xem cách sử dụng cơ bản của lệnh rmdir.

Xóa một thư mục rỗng trong Linux

Đầu tiên, tạo một số thư mục rỗ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

Cùng một cách, chúng ta có thể sử dụng lệnh rmdir để xóa nhiều thư mục rỗng cùng một lúc.

Hãy 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

Ở đây, chúng ta có thể thấy rằng lệnh ls không hiển thị bất kỳ thư mục nào.

Linux rmdir Command Usage

Chế độ chi tiết của lệnh rmdir

Ở 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, không có ý nghĩa khi thực hiện một lệnh nhiều hơn để xác minh các hoạt động của các lệnh trước đó.

Trong trường hợp như vậy, chúng ta có thể bật chế độ chi tiết bằng cách sử dụng tùy chọn -v, cung cấp thông tin cho mỗi thư mục đã xử lý.

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

$ mkdir dir1 dir2 dir3 dir4

Bây giờ, hãy xóa các thư mục với chế độ chi tiết được bật:

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

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

rmdir Command Verbose Mode

Xóa các thư mục con rỗ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, cho phép chúng ta tổ chức dữ liệu một cách chính xác. Hãy xem cách làm việc với các thư mục con rỗ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 cách sử dụng lệnh rmdir. Tuy nhiên, tình hình 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, chúng ta có thể sử dụng tùy chọn -p, nó xóa thư mục và tất cả các thư mục cha của nó. Hãy hiểu điều này bằng một ví dụ.

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

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

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

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

$ 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ế độ chi tiết xóa thư mục dir5 và tất cả các thư mục cha của nó.

Remove Empty Sub Directories in Linux

Xử lý lỗi Thư mục không rỗng

Chúng ta đã biết rằng lệnh rmdir chỉ có thể xóa các thư mục rỗng. Bất kỳ thử gắng xóa một thư mục không rỗng nào sẽ dẫn đến một lỗi. Mặc dù điều này bảo vệ dữ liệu nhưng trong một số trường hợp hiếm có nó có thể tạo ra một vấn đề.

Ví dụ, nếu chúng ta thử xóa một thư mục không rỗng từ kịch bản đang được thực thi bởi Jenkins, thì công việc sẽ báo cáo một lỗi.

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

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

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

Đối với các 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ó bỏ qua tất cả các lỗi xảy ra do thư mục không rỗ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ề bằng không chỉ ra việc thực thi lệnh thành công. Tuy nhiên, quan trọng để lưu ý rằng tùy chọn này chỉ ẩn lỗi và không xóa thư mục không rỗng.

rmdir - Directory not empty Error

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

Tương tự với 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 sử dụng của hai biểu thức chính quy sau:

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

Đầu tiên, hãy tạo một số thư mục rỗ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, 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 khác đã bị xóa.

Use Regular Expressions in rmdir Command

Ở phần này, chúng ta đã thảo luận về việc sử dụng chỉ hai biểu thức chính quy. 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.

Trong bài viết này, đầu tiên, chúng ta đã xem xét cách sử dụng cơ bản của lệnh rmdir. Sau đó, chúng ta đã thảo luận về chế độ chi tiết và việc xóa các thư mục con. Tiếp theo, chúng ta đã thảo luận về cách xử lý các lỗi khi một thư mục không rỗng. Cuối cùng, chúng ta đã thảo luận về cách sử dụng biểu thức chính quy.