Câu trả lời:
Tiện ích find (1) có các nguyên tắc có thể được phủ định ("đảo ngược") bằng cách sử dụng "!" nhà điều hành. Tuy nhiên, người ta phải thoát khỏi sự phủ định bằng dấu gạch chéo ngược vì nó là một metacharacter vỏ. Kết quả:
find . \! -user foo -print
xargs -I{} -P3 -- ${cmdhere} {}
có thể có $ {cmdhere} hoạt động song song trên mỗi tệp. cmdhere :: = dụng cụ unix tiêu chuẩn; tiêu chuẩn unix utils :: = chmod, chown, stat, ls, ...
find . ...
hoặc đường ống đến xargs
cách thứ nhất hoặc thứ hai?
find . ! -user foo -exec chown <owner>:<group> {} \;
Tìm kiếm tệp KHÔNG thuộc sở hữu của ai đó
Những người khác đã trả lời câu hỏi "KHÔNG thuộc sở hữu của một người dùng cụ thể" trong cơ thể. Đây là một câu trả lời cho câu hỏi giật gân nhưng chưa được cung cấp:
$ find / -nouser
Bạn có thể sử dụng nó như vậy:
$ sudo find /var/www -nouser -exec chown root:apache {} \;
Và một liên quan:
$ find / -nogroup
-user
tìm thấy bởi người dùng hoặc ID người dùng và !
đảo ngược vị ngữ. Vì vậy, ! -user ...
.
Bạn có thể sử dụng điều này:
find <dir> ! -user <username>
Sử dụng z-shell (zsh) bạn có thể sử dụng
ls -laR *(^U)
hoặc là
ls -la **/*(^U)
để tìm kiếm tất cả các tệp đệ quy không thuộc sở hữu của bạn.
-a
cờ vì mở rộng ký tự đại diện. Để bắt các tệp chấm sử dụng dotglob
tùy chọn zsh : setopt dotglob
. Trong một dòng : (setopt dotglob; ls **/*(^U) )
. Các dấu ngoặc đơn phải chạy trong một khung con để bạn không phải chạy setopt nodotglob
sau khi hoàn thành.
!
dường như là tùy chọn