Tại sao các công cụ thích cp
và rm
xử lý các thư mục riêng biệt với các tệp thông thường? Cả hai đều yêu cầu người dùng chỉ định rõ ràng cô ấy muốn có hành vi đệ quy, nếu không họ sẽ không xử lý các thư mục.
Tương tác đầu tiên của tôi (một lúc trước) với các máy tính là trên môi trường Windows / GUI / point-and-click / kéo và thả, dường như luôn tự nhiên rằng các hoạt động này sẽ hoạt động giống nhau, bất kể mục tiêu là gì.
Hành vi này đặc biệt làm tôi thất vọng khi tôi ra lệnh bằng các ký tự đại diện. Điều gì xảy ra nếu tôi muốn xóa mọi thứ trong một thư mục ( *
) ngoại trừ các thư mục con không trống ?
Tôi chỉ có thể tưởng tượng rằng đây là một tính năng bảo mật nào đó để ngăn người dùng tự bắn vào chân mình, nhưng điều này mâu thuẫn với sự hiểu biết của tôi về một vài nguyên tắc Unix:
- Unix thường không bảo vệ người dùng khỏi chính mình. Nó luôn cho rằng người dùng biết cô ấy đang làm gì.
- Đối với Unix mọi thứ là một tập tin. Không phải là một thư mục chỉ là một tập tin? Tại sao họ được đối xử khác nhau?
Những câu hỏi của tôi:
- Là hành vi này xuất phát từ một giới hạn kỹ thuật hay nó là một sự lựa chọn có chủ ý?
Và trong trường hợp sau này,
- Có tài khoản lịch sử nào về lý do thúc đẩy sự lựa chọn này không?
rm
ít nhất, nếu bạn muốn nó bỏ qua sự khác biệt giữa các tập tin và thư mục, bạn có thể đặt ở của bạn~/.bashrc
tập tin:alias rm='rm -r'
.