30 Ağustos 2021 Pazartesi

find komutu printf seçeneği

Specifier Olmayan Şeyler
Örnek
Boş dizinleri saymak için şöyle yaparızz
find . -maxdepth 1 -type d -empty -printf '\n' | wc -l
%h specifier - dirname
Örnek
*.c uzantılı dosyaların bulunduğu dizini yazdırmak için şöyle yaparız
find . -type f -iname '*.c' -printf '%h\0' |
  sort -z |
  uniq -zc |
%g specifier - group name
group bilgisini verir.

%s specifier - File's size in bytes
Örnek
Boyu en büyük dosyaları bulmak için şöyle yaparız
find . -mindepth 2 -printf "%s\t%p\n" | sort -n | cut -f 2- | tail -n $n
%p specifier - file's name
Örnek
Şöyle yaparız. %y ile d veya f karakteri dizin veya dosya olduğunu belirtir. %p ile dosya/dizin ismi gösterilir.
$ sudo find . -name 'example.com*' -printf "%y %p\n"
d ./archive/example.com
f ./renewal/example.com.conf
d ./live/example.com
%P specifier - Dosyanın Bulunduğu Dizin İsmi
Açıklaması şöyle. Yani en son dizinin ismini verir.
File's name with the name of the starting-point under which it was found removed.
Örnek
Şöyle yaparız
find /Volumes/SpeedyG -type d >> file.txt

# Çıktı şöyle
/Volumes/SpeedyG/folder1  
/Volumes/SpeedyG/folder2  
/Volumes/SpeedyG/folder2

find /Volumes/SpeedyG -type d -printf '%P\n' >> file.txt

# Çıktı şöyle
folder1  
folder2  
folder3
Örnek
Şöyle yaparız
$ find /usr/local/bin/ /bin/ -printf '%P\n'
%t - File's last modification time
Örnek ver

%u specifier - File's user name
user yani dosya sahibini (owner) verir. Şöyle yaparız.
$ sudo find /var -printf '%u:%g\n' | sort -t: -u
_apt:root
clamav:adm
clamav:clamav
colord:colord
daemon:daemon
lightdm:lightdm
lp:lp
man:root
speech-dispatcher:root
statd:nogroup
steeldriver:crontab
steeldriver:lightdm
steeldriver:steeldriver
syslog:adm
systemd-timesync:systemd-timesync
testuser:crontab


Hiç yorum yok:

Yorum Gönder