Відповіді:
Утиліта find (1) має праймери, які можна заперечувати ("перевертати") за допомогою "!" оператор. Однак підказки повинні уникати заперечення з зворотним нахилом, оскільки це метахарактер оболонки. Результат:
find . \! -user foo -print
xargs -I{} -P3 -- ${cmdhere} {}
може {$ {cmdhere} працювати над кожним файлом паралельно. cmdhere :: = стандартні утиліти unix; стандартні програми Unix :: = chmod, chown, stat, ls, ...
find . ...
або перехід xargs
на перший або другий спосіб?
find . ! -user foo -exec chown <owner>:<group> {} \;
Шукаєте файли, які НЕ належать комусь
Інші відповіли на запитання "НЕ належить певному користувачеві" в органі. Ось такий, який відповідає на титульне запитання, але не надано:
$ find / -nouser
Ви можете використовувати його так:
$ sudo find /var/www -nouser -exec chown root:apache {} \;
І пов'язане з ним:
$ find / -nogroup
-user
знаходить за користувачем або ідентифікатором користувача та !
інвертує присудок. Так, ! -user ...
.
Ви можете скористатися цим:
find <dir> ! -user <username>
Використовуючи z-shell (zsh), який можна використовувати
ls -laR *(^U)
або
ls -la **/*(^U)
шукати всі файли, які не належать вам.
-a
прапором через розширення підстановки. Для лову точкових файлів використовуйте параметр zsh dotglob
: setopt dotglob
. В одному рядку: (setopt dotglob; ls **/*(^U) )
. В круглих дужках потрібно запустити в підзаголовок, щоб вам не довелося запускатись setopt nodotglob
після закінчення.
!
здається, необов’язкова