Làm thế nào để tôi loại bỏ một thư mục và tất cả nội dung của nó?


141

Trong bash tất cả những gì tôi biết là

rmdir directoryname

sẽ xóa thư mục nhưng chỉ khi nó trống. Có cách nào để buộc loại bỏ thư mục con?

Câu trả lời:


216

Lệnh sau sẽ làm điều đó cho bạn. Hãy thận trọng mặc dù.

rm -rf directoryname

52
"-f" là "- Force" ghi đè một số kiểm tra độ tỉnh táo và nhắc nhở. Một lệnh an toàn hơn để bắt đầu sẽ là rm -r directoryname.
Jim Paris

Vì một số lý do, tôi gặp rm: invalid option -- rlỗi khi cố gắng xóa một thư mục có rm -r <directoryname>.
Mặt trời

@Sunspawn Kiểm tra câu hỏi liên quan này để xem nếu đó là trường hợp.
Marc.2377

1
@JimParis Tôi nghĩ từ "an toàn hơn" là tương đối. Giả sử bạn đang viết một tập lệnh để chạy trên máy tính từ xa. Kịch bản lệnh đó có một lệnh được cho là xóa một thư mục. Ở đây, sẽ an toàn hơn khi sử dụng rm -rf directorynamevì bạn sẽ không muốn tập lệnh của mình tạm dừng thực thi, vì nó đang chờ người dùng nhập liệu. Tất nhiên, bạn phải chắc chắn rằng việc xóa thư mục sẽ không gây hại.
John Red

7

nếu rm -rf directorynamethất bại, hãy thử sử dụng rm -R -f directoryname, hoặc rm --recursive -f directoryname.

Nếu bạn không gặp may mắn với những thứ này, bạn nên xem xét việc cài đặt lại rm hoặc chuyển đổi shell.


Đây là các tùy chọn có sẵn trên trang rm man của tôi, tôi đã tra cứu nó bằng cách gõ man rmđể xem các tùy chọn của mình về xóa đệ quy và các tùy chọn bắt buộc .
saterHater

rmdanh sách trang người đàn ông của bạn -r? Nó làm gì? (Hãy thử nó trong một thư mục mà bạn tạo chỉ nhằm mục đích thử nghiệm, chỉ có các tệp giả (và có thể cả thư mục con) trong đó.) Bạn đang sử dụng hệ điều hành nào?
G-Man

PS Nếu rm -rkhông hoạt động, đó sẽ là một vấn đề hệ điều hành, không phải là vấn đề hệ vỏ. (Nói đúng ra, đây sẽ là một vấn đề với phiên bản rmmà bạn đang sử dụng, vì vậy bạn có thể giải quyết nó bằng cách cài đặt một phiên bản khác rmhoặc tìm kiếm hệ thống của bạn để xem liệu bạn đã có phiên bản khác rmtrong một thư mục khác ngoài /bin.)
G-Man

À, đúng rồi. Tôi đã quên đề cập đến tôi trên Ubuntu 14.04 Khi tôi chạy man rmtrong thiết bị đầu cuối của mình, nó đã cho tôi một tệp văn bản với lesstrình xem văn bản. Tôi cuộn tìm thấy một mục thụt vào với một tổng thể mà có -R--recursive tùy chọn cozied lên với -r tùy chọn, có nghĩa rằng tất cả những lập luận giống hệt nhau.
saterHater

1
chỉnh sửa: bạn đã thửsudo rm -r directoryName chưa? Các quy tắc bất thành văn của các lệnh cơ bản là -rsẽ cho phép một chương trình chạy đệ quy trên mọi tệp hệ thống tệp của bạn (bắt đầu từ bất cứ nơi nào bạn chọn!) Và điều đó sẽ mạnh mẽ làm mọi việc, ngay cả khi nó nguy hiểm . 'cd', 'mv', 'ls' hầu hết đều đúng nguyên tắc này. ls -r /sẽ là một duzie và cp -rf / /dev/nullsẽ phá hủy mọi thứ trên hệ thống tập tin của bạn. <- Không bao giờ chạy lệnh đó!
saterHater
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.