Tôi nghĩ rằng tôi khá tiên tiến trong việc sử dụng tìm kiếm nhưng MỌI lần tôi sử dụng nó, tôi không thể nhớ được phương pháp này để đóng tùy chọn -exec. Tôi dành rất nhiều thời gian để đọc mỗi khi tôi sử dụng nó. Tôi chỉ đơn giản là không sử dụng nó đủ hoặc mong đợi quá nhiều của bản thân? Hãy bắt đầu với một ví dụ điển hình khiến tôi thất vọng.
Cấu trúc thư mục có các tệp với tất cả các quyền không chính xác ẩn các tệp liên kết tượng trưng, v.v. Tôi muốn thay đổi quyền sở hữu thành giá trị hợp lý
find . -type f -exec chown username {} \;
find . -type d -exec chown username {} \;
find . -type d -exec chgrp usergroup {} \;
find . -type f -exec chgrp usergroup {} \;
(Hãy tha thứ cho tôi nếu kết thúc ngược ... Tôi đã xem nó một giờ trước và tôi vẫn không chắc chắn)
Nhưng tôi sợ phải chạy nó vì thú cưỡi, liên kết tượng trưng, v.v. Tôi đã tạo ra sự ngu ngốc cuối cùng của chmod. * Và nó đã tái diễn trước tôi. Tôi biết -xdev sẽ từ bỏ các phân vùng nhưng tôi không chắc điều gì sẽ xảy ra với các tệp nằm trong các thư mục có liên kết tượng trưng.
Vậy làm thế nào để một người làm chủ con thú này có thể giết các tập tin quan trọng?
Cập nhật cắt tỉa những gợi ý tốt nhất dưới đây và tóm tắt:
- Có một thư mục thực hành được liên kết và gắn kết với các thư mục thực hành khác.
- Sử dụng xargs chứ không phải lệnh exec không trực quan.
- Sử dụng -exec echo {} cho sự tỉnh táo và an toàn
- Semi dấu hai chấm là đặc biệt và bạn đang thoát nó do đó char thoát là đầu tiên
- Lệnh -or có thể giúp bạn kết hợp các tiêu chí lựa chọn.
Tôi hơi bối rối về print0 nhưng xargs luôn có một chút không dễ hiểu ngay từ cái nhìn đầu tiên mà tôi cố gắng tránh.