2011-09-07 16 views
13

Sadece dosyanın sahibini ve grubunu, unix kabuğundaki boşlukla ayırarak almanın bir yolu var mı?Unix'te bir dosyanın sahibini bulun

Dizindeki tüm dosyaların sahibini bulmak için bir komut dosyası yazmaya çalışıyorum ve bunu yazdırın (belirli bir biçimde ls -la kullanamazsınız).

# if you want just the files in the directory, no recursion 
find "$dir" -maxdepth 1 -type f -printf "%u %g\n" 

# if you want all the files from here down 
find "$dir" -type f -printf "%u %g\n" 

# if you need the filename as well for disambiguation, stick a %f in there 
find "$dir" -maxdepth 1 -type f -printf "%u %g %f\n" 

diğer sistemler gfind olarak bu olabilir:

cevap

18
ls -l | awk '{print $3, $4 }' 

Bu senin için bunu yapacak -printf seçeneği vardır o

+0

Burada -tr' nedir? – sanmai

+0

Yalnızca tek bir kullanıcı değil, yinelenen – CPJ

+0

ile uzun bir liste yerine, yalnızca benim sıralarımın alışkanlıktan kopup gitmesini istediysem, bu onları zamana göre sıralar, tersine çevirir – CPJ

1
ls -l | cut -f3,4 -d" " | tail -n +2 
2

GNU find yapacağız.

10

UNIX sürümüne, eğer mevcut stat komutunu kullanın: Bir dizindeki tüm dosyalar için bu işlemi yapmak,

$ stat -c "%U %G" /etc/passwd 
    root root 

veya ve her dosyanın adını da yazdırabilirsiniz:

$ stat -c "%n %U %G" * 
1

Ayrıca şu komutu deneyin:

stat -c% U dosyası

İlgili konular