2012-09-16 20 views
12

Hope ai đó có thể giúp đỡ với điều này:tùy chọn -maxdepth sau khi một tổ chức phi-option VÀ tìm: con đường phải đi trước biểu hiện

Am cố gắng để xóa các tập tin phiên on/tmp với lệnh này:

find /tmp -name 'sess_*' -user Username -maxdepth 1 $CMD {} \; 

nhưng tôi nhận được các lỗi này:

tìm: cảnh báo: bạn đã xác định tùy chọn -maxdepth sau một không lựa chọn tham số -name, nhưng lựa chọn không phải là vị trí (-maxdepth aff ect kiểm tra quy định trước khi nó cũng như những quy định sau nó). Vui lòng chỉ định các tùy chọn trước các đối số khác.

find: paths must precede expression Usage: find [-H] [-L] [-P] [path...] [expression] 

Tôi đã tìm các giải pháp trên web nhưng không thể tìm thấy bất kỳ giải pháp nào. Tôi đã xóa các tập tin tmp khác với các lệnh khác và tự hỏi nếu điều đó bị ảnh hưởng một số khối lượng hoặc ổ cắm.

Cảm ơn bạn trước

+0

thêm '-exec' trước' $ CMD' – Drakosha

Trả lời

22

find có ba loại tùy chọn: tùy chọn được sử dụng để phù hợp với tập tin (ví dụ như -name, -user), lựa chọn xác định hành động để thực hiện trên các tập tin phù hợp (-print, -exec), và các tùy chọn kiểm soát hành vi chung của lệnh (ví dụ: -maxdepth, -xdev). Loại thứ ba phải được đặt trước hai loại kia. Vì vậy, nó phải là:

find /tmp -maxdepth 1 -name 'sess_*' -user Username -exec $CMD {} \; 
+0

Tôi hiểu rồi, tôi đã thử nhưng bỏ qua phần -exec. Cảm ơn Barmar.Các lệnh đã đi qua nhưng mỗi tập tin kết thúc với Permission Denied. Tôi nghĩ rằng vì đang xóa các phiên cho tài khoản tên người dùng của tôi vì/tmp có các quyền thích hợp: drwxrwxrwt 4 root root 1168384 Sep 15 17:21 – Amit

+0

Đừng bận tâm! quyền truy cập bị từ chối đối với các tệp do root chỉ sở hữu, nhưng những người khác do quản trị viên sở hữu đã bị xóa âm thầm.Không lặp lại bất kỳ điều gì khi xóa thành công. Cảm ơn tất cả. – Amit

+1

Nếu bạn muốn nó lặp lại điều gì đó khi nó tìm thấy một tệp phù hợp, hãy sử dụng tùy chọn -print. – Barmar

Các vấn đề liên quan