Cách Xóa (xóa) Thư Mục Trong Linux - Android 2022 - Joe Comp

Có một số cách khác nhau để loại bỏ các thư mục trong các hệ thống Linux. Nếu bạn sử dụng trình quản lý tệp trên Máy tính để bàn như Tệp của Gnome hoặc Cá heo của KDE thì bạn có thể xóa các tệp và thư mục bằng giao diện người dùng đồ họa của người quản lý. Nhưng, nếu bạn đang làm việc trên một máy chủ không đầu hoặc muốn xóa nhiều thư mục cùng một lúc thì tùy chọn tốt nhất của bạn là xóa các thư mục (thư mục) khỏi dòng lệnh.

, chúng tôi sẽ giải thích cách xóa các thư mục trong Linux bằng cách sử dụng các rmdir , rm và find .

Trước khi bắt đầu

Khi bạn xóa một thư mục bằng trình quản lý tệp Desktop, thư mục đó thực sự được chuyển đến Thùng rác và có thể dễ dàng phục hồi.

Cẩn thận hơn khi xóa các tệp hoặc thư mục khỏi dòng lệnh, bởi vì một khi thư mục bị xóa bằng các lệnh được giải thích, nó không thể được phục hồi hoàn toàn.

Trên hầu hết các hệ thống tập tin Linux, việc xóa một thư mục yêu cầu quyền ghi trên thư mục và nội dung của nó. Nếu không, bạn sẽ nhận được Lỗi hoạt động không được phép lỗi.

Tên thư mục có khoảng trắng trong chúng phải được thoát bằng dấu gạch chéo ngược ( / ).

Xóa thư mục với rmdir

rmdir là một tiện ích dòng lệnh để xóa các thư mục trống. Nó rất hữu ích khi bạn muốn xóa một thư mục chỉ khi nó trống, mà không cần kiểm tra xem thư mục đó có trống hay không.

Để xóa một thư mục với rmdir , hãy gõ lệnh theo sau là tên của thư mục bạn muốn xóa. Ví dụ: để xóa thư mục có tên dir1 bạn sẽ gõ:

rmdir dir1

Nếu thư mục không trống, bạn sẽ gặp lỗi sau:

rmdir: failed to remove 'dir1': No such file or directory

Trong trường hợp này, bạn sẽ cần sử dụng lệnh rm hoặc xóa thủ công nội dung thư mục trước khi bạn có thể xóa nó.

Xóa thư mục với rm

rm là một tiện ích dòng lệnh để xóa các tập tin và thư mục. Không giống như rmdir rm có thể xóa cả thư mục trống và không trống.

Theo mặc định, khi được sử dụng mà không có bất kỳ tùy chọn rm sẽ không loại bỏ các thư mục. Để xóa một thư mục trống, sử dụng tùy chọn -d ( --dir ) và xóa một thư mục không trống và tất cả nội dung của nó sử dụng tùy chọn -r ( --recursive hoặc -R ).

Ví dụ: để xóa một thư mục có tên dir1 cùng với tất cả nội dung của nó, bạn sẽ gõ:

rm -r dir1

Nếu một thư mục hoặc một tệp trong thư mục được bảo vệ chống ghi, bạn sẽ được nhắc xác nhận xóa. Để xóa thư mục mà không được nhắc sử dụng tùy chọn -f :

rm -rf dir1

Để xóa nhiều thư mục cùng một lúc, hãy sử dụng lệnh rm theo sau là tên của các tên thư mục được phân tách bằng dấu cách. Lệnh dưới đây sẽ xóa từng thư mục được liệt kê và nội dung của chúng:

rm -r dir1 dir2 dir3

Tùy chọn -i yêu cầu rm nhắc bạn xác nhận xóa từng thư mục con và tệp. Nếu thư mục chứa nhiều tệp, điều này có thể gây khó chịu đôi chút, vì vậy bạn có thể cân nhắc sử dụng tùy chọn -I điều này sẽ nhắc bạn chỉ một lần trước khi tiến hành xóa.

rm -rI dir1

Để xóa thư mục gõ y và nhấn Enter .

rm: remove 1 argument recursively? y

Bạn cũng có thể sử dụng các bản mở rộng thông thường để khớp và xóa nhiều thư mục. Ví dụ: để xóa tất cả các thư mục cấp đầu tiên trong thư mục hiện tại kết thúc bằng _bak , bạn sẽ sử dụng lệnh sau:

rm -r *_bak

Sử dụng mở rộng thường xuyên khi loại bỏ các thư mục có thể có rủi ro. Trước tiên bạn nên liệt kê các thư mục bằng ls để bạn có thể xem thư mục nào sẽ bị xóa trước khi chạy lệnh rm .

Xóa thư mục với find

find là một tiện ích dòng lệnh cho phép bạn tìm kiếm các tệp và thư mục dựa trên một biểu thức đã cho và thực hiện một hành động trên mỗi tệp hoặc thư mục phù hợp.

Kịch bản phổ biến nhất là sử dụng lệnh find để xóa các thư mục dựa trên một mẫu. Ví dụ: để xóa tất cả các thư mục kết thúc bằng _cache trong thư mục làm việc hiện tại, bạn sẽ chạy:

find. -type d -name '*_cache' -exec rm -r {} +

Hãy phân tích lệnh trên:

  • /dir - tìm kiếm đệ quy trong thư mục làm việc hiện tại ( . ). -type d - hạn chế tìm kiếm vào thư mục. -name '*_cache' - chỉ tìm kiếm các thư mục kết thúc bằng _cache -exec - thực thi một lệnh bên ngoài với các đối số tùy chọn, trong trường hợp này là rm -r . {} + - nối các tệp tìm thấy vào cuối lệnh rm .

Xóa tất cả các thư mục trống

Để xóa tất cả các thư mục trống trong cây thư mục, bạn sẽ sử dụng:

find /dir -type d -empty -delete

Dưới đây là một lời giải thích cho các tùy chọn được sử dụng:

  • /dir - tìm kiếm đệ quy trong /dir . -type d - hạn chế tìm kiếm vào thư mục. -empty - chỉ giới hạn tìm kiếm trong các thư mục trống. -delete - xóa tất cả các thư mục trống được tìm thấy trong cây con. -delete có thể xóa các thư mục trống.

Sử dụng tùy chọn -delete hết sức thận trọng. Dòng lệnh find được đánh giá là một biểu thức và nếu bạn thêm tùy chọn -delete trước, lệnh sẽ xóa mọi thứ bên dưới các điểm bắt đầu mà bạn đã chỉ định. Luôn sử dụng -delete làm tùy chọn cuối cùng và trước khi xóa, hãy kiểm tra lệnh trước mà không có tùy chọn -delete .

/ bin / rm: Danh sách đối số quá dài

Thông báo lỗi này xuất hiện khi bạn sử dụng lệnh rm để xóa thư mục chứa một số lượng lớn tệp. Điều này xảy ra vì số lượng tệp lớn hơn giới hạn hệ thống về kích thước của đối số dòng lệnh.

Có một số giải pháp khác nhau cho vấn đề này. Ví dụ: bạn có thể cd vào thư mục và theo cách thủ công hoặc sử dụng một vòng lặp để loại bỏ từng thư mục con.

Giải pháp đơn giản nhất trước tiên là xóa tất cả các tệp trong thư mục bằng lệnh find và sau đó xóa thư mục:

find /dir -type f -delete && rm -r /dir

Phần kết luận

Với rm và find bạn có thể xóa các thư mục dựa trên các tiêu chí khác nhau nhanh chóng và hiệu quả.

Xóa thư mục là một quá trình đơn giản và dễ dàng nhưng bạn phải thận trọng để không xóa dữ liệu quan trọng.

rm rmdir tìm thiết bị đầu cuối

Từ khóa » Xóa Thư Mục Không Rỗng Trong Linux