Sự khác biệt giữa rmdir và rm -r


9

Tôi thường xóa các thư mục bằng cách sử dụng rm :

rm -r myDir

Tuy nhiên, tôi biết về một lệnh khác, rmdir , dường như cũng thực hiện công việc này:

rmdir myDir

Sự khác biệt giữa hai lệnh này và khi nào mỗi lệnh nên được sử dụng?


2
Rmdir của bạn có hoạt động nếu có tệp trong thư mục con không?
Jeff Schaller

1
Xem thêm các cuộc gọi hệ thống cùng tên rmdir(2)chỉ có thể loại bỏ các thư mục trống.
David Foerster

4
Nhân tiện, có một quy trình "chính xác" để sử dụng rm -r: (1) Nhập lệnh, nhưng không nhập nó (2) Đưa tay ra khỏi bàn phím (3) Đếm đến năm (4) Nhấn ENTER. Tôi đã bắt đầu làm một cái gì đó như thế này với tất cả các lệnh nguy hiểm, để cho tôi cơ hội xem xét những gì tôi đang làm, đảm bảo tôi đã nhập chính xác mọi thứ, suy nghĩ xem liệu có thể có hậu quả bất ngờ hay không, v.v. để xóa lệnh của tôi và làm một số kiểm tra bổ sung đầu tiên, ví dụ.
ajb

3
@ajb rm -rf ~ /*- Dọn dẹp thư mục nhà của tôi. Hoặc chờ đợi, có thể làm sạch hệ thống. Luôn luôn tốt để kiểm tra lại;).
Tom Carpenter

1
@ajb Lưu ý rằng rmdirrm -rlà hai chuỗi có cùng độ dài :-)
Kusalananda

Câu trả lời:


14

rm -rxóa một thư mục và tất cả nội dung của nó; rmdirsẽ chỉ xóa một thư mục nếu thư mục trống. Tôi muốn sử dụng như sau để xóa một thư mục và tất cả nội dung của nó:

rm -rf <directory_to_be_removed>

17
Lưu ý, rằng bạn thường không nên sử dụng -fnếu bạn không cần. Nó tiện dụng để sử dụng -rfmọi lúc, nhưng nó vô hiệu hóa (gần như) tất cả các kiểm tra an toàn.
allo

5
-1 cho khuyến nghị không chính thức về -fcờ của rm có thể gây ra hậu quả khó lường, không thể lường trước được
mèo

Như vậy rmdirchỉ là rm -d?
Stan Strum

@StanStrum -dkhông phải là một lựa chọn tiêu chuẩn rm.
Kusalananda

@cat rmLệnh nói chung có thể có những hậu quả này. Các -flá cờ rất hữu ích khi chạy dưới set -etrong một kịch bản. Tôi đồng ý rằng sử dụng mà không cần suy nghĩ là không cần thiết .
Kusalananda

1

Bạn nên sử dụng rm -rkhi muốn xóa đệ quy một thư mục và tất cả nội dung của nó, hoặc khi mục tiêu có thể là một thư mục hoặc tệp và bạn muốn xóa nó bất kể đó là gì.

Bạn nên sử dụng rmdirkhi muốn xóa một thư mục trống.

Các rmdirlệnh rất hữu ích vì nó từ chối để loại bỏ các thư mục không rỗng và các tập tin. Điều này phục vụ như một sự nắm bắt an toàn trong các tình huống mà bạn có thể muốn hoàn toàn chắc chắn rằng những gì bạn đang xóa là một thư mục và thư mục đó trống trước khi xóa nó (ví dụ trong tập lệnh) và muốn coi đó là một điều kiện lỗi nếu không thì.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.