Jawaban:
Utilitas find (1) memiliki primary yang dapat dinegasikan ("terbalik") menggunakan "!" operator. Namun pada prompt, seseorang harus melarikan diri dari negasi dengan backslash karena merupakan metacharacter shell. Hasil:
find . \! -user foo -print
xargs -I{} -P3 -- ${cmdhere} {}
agar $ {cmdhere} beroperasi pada setiap file secara paralel. cmdhere :: = utix unix utils standar; standard unix utils :: = chmod, chown, stat, ls, ...
find . ...
atau pipa ke xargs
cara pertama atau kedua?
find . ! -user foo -exec chown <owner>:<group> {} \;
Mencari file TIDAK milik seseorang
Yang lain telah menjawab pertanyaan itu "TIDAK dimiliki oleh pengguna tertentu" di dalam tubuh. Inilah salah satu yang menjawab pertanyaan tituler tetapi belum disediakan:
$ find / -nouser
Anda dapat menggunakannya seperti ini:
$ sudo find /var/www -nouser -exec chown root:apache {} \;
Dan yang terkait:
$ find / -nogroup
-user
ditemukan oleh pengguna atau ID pengguna, dan !
membalikkan predikat. Jadi, ! -user ...
.
Anda bisa menggunakan ini:
find <dir> ! -user <username>
Menggunakan z-shell (zsh) yang dapat Anda gunakan
ls -laR *(^U)
atau
ls -la **/*(^U)
untuk mencari semua file secara rekursif yang bukan milik Anda.
-a
flag karena ekspansi wildcard. Untuk menangkap dot file menggunakan zsh dotglob
pilihan: setopt dotglob
. Dalam satu baris: (setopt dotglob; ls **/*(^U) )
. Tanda kurung dijalankan dalam subkulit sehingga Anda tidak harus menjalankan setopt nodotglob
setelah selesai.
!
tampaknya menjadi opsional