Làm gì rm -rf
khi được sử dụng để loại bỏ các tập tin hoặc thư mục?
Làm thế nào để -r
và -f
các tùy chọn làm việc cùng nhau?
Làm gì rm -rf
khi được sử dụng để loại bỏ các tập tin hoặc thư mục?
Làm thế nào để -r
và -f
các tùy chọn làm việc cùng nhau?
Câu trả lời:
Lệnh rm -rf
này giống như rm -r -f
.
Từ rm
trang man của (nhập man rm
vào một thiết bị đầu cuối để xem nó) -r
:
remove directories and their contents recursively
Và -f
không:
ignore nonexistent files and arguments, never prompt
Vì vậy, trong sự kết hợp họ làm cả hai.
Vui lòng sử dụng lệnh này một cách cẩn thận!
rm -rf /
về mặt lý thuyết sẽ xóa mọi tệp trên máy tính của bạn nằm trong thư mục mà bạn có quyền ghi. Nếu bạn đã root, điều đó có nghĩa là xóa sạch toàn bộ hệ thống. (Trong thực tế, nó không hoạt động vì GNU rm
có trường hợp đặc biệt từ chối cho phép rm -r /
trừ khi bạn cũng nói --no-preserve-root
.)
rm -rf /
xem nó có bị bắt đúng không.
Ngoài câu trả lời đúng trước đây, tôi muốn dạy bạn cách câu cá:
Khi bạn không chắc chắn về cách thức hoạt động của một lệnh, các tùy chọn có và những gì nó làm, hãy mở một thiết bị đầu cuối và gõ
man <command>
Ví dụ:
man rm
Khi ở đó, bạn có thể tìm kiếm tùy chọn. Một trang man có thể rất dài để đọc, vì vậy trong loại thiết bị đầu cuối:
/<pattern>
Vì vậy, ví dụ, làm:
/-f
Bạn có thể dễ dàng hạ cánh để:
-f, --force
ignore nonexistent files and arguments, never prompt
Dành cho -r làm:
-r, -R, --recursive
remove directories and their contents recursively
Bạn có thể di chuyển giữa các kết quả tìm kiếm bằng cách sử dụng n
(tiếp theo) và N
(trước đó).
Nếu bạn cần làm gì đó, nhưng bạn không biết tên lệnh, hãy sử dụng apropos
để tìm kiếm trong các trang man:
apropos <pattern>
Ví dụ:
apropos directory listing
rm
là viết tắt của loại bỏ. Các r
lá cờ là thư mục remove và nội dung của đệ quy và các f
lực lượng phương tiện, và nó quan trọng hơn bất kỳ nhắc nhở xác nhận.
r flag is to remove directories
là không đúng..tôi loại bỏ các thư mục cùng với nội dung của nó, nó là một hoạt động đệ quy..theo lời nói của bạn, nó sẽ chỉ xóa các thư mục, còn các thư mục con, các tập tin theo nó thì sao? vì mục nhập thư mục chỉ chứa ánh xạ tên
Như đã được đề cập, rm -rf <ARG>
có nghĩa là mạnh mẽ loại bỏ các tệp đệ quy, nơi <ARG>
là một thư mục (mặc dù nó có thể là một tệp tốt).
Toàn bộ quan điểm của -r
(loại bỏ đệ quy) là rm
không thể xóa các thư mục nếu chúng không trống, đơn giản vì lệnh gọi hệ thống cơ bản rm
sử dụng ( hủy liên kết ) chỉ hoạt động trên các thư mục trống. Do đó, -r
cờ làm gì , là tìm kiếm theo chiều sâu giảm dần vào các thư mục và xóa các tệp trước, và chỉ sau đó khi thư mục trống - nó sẽ xóa nó. Hiệu ứng tương tự này đạt được thông qua find
lệnh với -delete
cờ (khi bạn không chỉ định lọc theo -type
, nhưng đó là một câu chuyện khác).
Đối với -f
, nó thực hiện hai điều - một là ngăn nhắc bạn có muốn xóa tệp hay không (chẳng hạn như khi bạn xóa tệp do người dùng khác sở hữu trong thư mục của mình, nó sẽ không hiển thị rm: remove write-protected regular empty file 'f1'?
lời nhắc xác nhận) và bỏ qua tập tin không tồn tại. Vì vậy, ví dụ, với tên tệp không tồn tại, bạn sẽ gặp rm: cannot remove 'nonexistent': No such file or directory
lỗi.
Xem thêm: