Saat ini saya sedang mencoba untuk memperbaiki sistem kuota saya. Masalah saya adalah bahwa saya tidak dapat menentukan apakah semua file dalam direktori dimiliki oleh pengguna yang sama. Jika memungkinkan apakah ada cara untuk membuat daftar berbagai pemilik file dalam direktori (secara rekursif).
misalnya get-owners-of DIRNAME
command-line
permissions
filesystem
quota
Jack7076
sumber
sumber
Jawaban:
Anda dapat menggunakan
find
untuk mencetak pengguna (pemilik) dan grup dan kemudian mengekstrak kombinasi unik misalnyasumber
-mindepth 1
sebelumnya-printf
. Dan saya tidak akan memasukkansudo
dalam contoh ketika OP tampaknya tidak berfungsi dalam konteks di mana itu diperlukan.-t:
ada perbedaan dalam konteks ini?akan mencantumkan pemilik semua file.
Ini dapat disortir dan duplikat dihapus dengan memipangnya ke
sort -u
:Seperti yang ditunjukkan oleh steeldriver, ini bukan rekursif. Saya merindukan bahwa ini diminta. Itu dapat dibuat rekursif dengan mengaktifkan globstar:
Secara keseluruhan, jawaban steeldriver mungkin lebih baik dan harus menjadi jawaban yang diterima di sini :)
sumber
ARG_MAX
masalah yang bisa Anda lakukanprintf '%s\0' **/* | xargs -0 stat -c %U
(karenaprintf
adalah builtin, seharusnya tidak memiliki batasan panjang yang sama)Anda mungkin merasa lebih efisien untuk langsung mencari file yang tidak dimiliki oleh pengguna ...
sumber
Metode DIY melalui Python:
Ini mengulangi semua nama file yang terdaftar pada command-line, mendapatkan UID dari pemilik file, dan menggunakan modul pwd mendapatkan nama pengguna pemilik. Setelah itu, nama file dan nama pengguna bergabung untuk pencetakan cantik dan dipisahkan melalui titik dua. Bekerja seperti itu:
sumber