Özet
find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]
find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]
Açıklama
find aracı, listelenen her bir yol (path) için dizin ağacında yinelemeli (recursively) olarak aşağı iner ve ağaçtaki her bir dosyaya göre bir ifadeyi (aşağıda listelenen "birincil öğeler" ve "terimler"den oluşan) değerlendirir.
Seçenekler aşağıdaki gibidir:
-E: -regex ve -iregex birincil öğelerini takip eden düzenli ifadeleri (regular expressions), temel düzenli ifadeler (BRE) yerine genişletilmiş (modern) düzenli ifadeler olarak yorumlar. re_format(7) kılavuz sayfası her iki biçimi de ayrıntılı olarak açıklamaktadır.-H: Komut satırında belirtilen her bir sembolik bağ (symbolic link) için döndürülen dosya bilgilerinin ve dosya türünün (bkz. stat(2)), bağın kendisi yerine bağ tarafından başvurulan dosyanın bilgileri olmasını sağlar. Başvurulan dosya mevcut değilse, dosya bilgileri ve türü bağın kendisi için olacaktır. Komut satırında olmayan tüm sembolik bağların dosya bilgisi bağın kendisininkidir.-L: Her bir sembolik bağ için döndürülen dosya bilgilerinin ve dosya türünün (bkz. stat(2)), bağın kendisi yerine bağ tarafından başvurulan dosyanın bilgileri olmasını sağlar. Başvurulan dosya mevcut değilse, dosya bilgileri ve türü bağın kendisi için olacaktır.
Bu seçenek, artık kullanılmayan (deprecated) -follow birincil öğesine eş değerdir.
-P: Her bir sembolik bağ için döndürülen dosya bilgilerinin ve dosya türünün (bkz. stat(2)) bağın kendisininkiler olmasını sağlar. Varsayılan davranış budur.-X: find komutunun xargs(1) ile birlikte güvenli bir şekilde kullanılmasına izin verir. Bir dosya adı xargs(1) tarafından kullanılan sınırlayıcı karakterlerden herhangi birini içeriyorsa, standart hata çıktısında bir teşhis mesajı görüntülenir ve dosya atlanır. Sınırlayıcı karakterler arasında tekil (“ ' ”) ve çift (“ " ”) tırnaklar, ters bölü (“\”), boşluk, sekme (tab) ve yeni satır karakterleri yer alır.
Bununla birlikte, etkili bir alternatif olarak "xargs -0" ile birlikte -print0 birincil öğesini kullanmayı düşünebilirsiniz.
-d: find komutunun derinlik öncelikli bir arama yapmasını sağlar.
Bu seçenek, IEEE Std 1003.1-2001 (“POSIX.1”) tarafından belirtilen -depth birincil öğesinin BSD'ye özgü bir eş değeridir. Daha fazla bilgi için BİRİNCİL ÖĞELER altındaki açıklamasına bakın.
-f path Yinelemeli olarak girilecek yollar listesine path yolunu ekler. Bu seçenek, path yolu aksi takdirde bir ifade olarak yorumlanabilecek bir karakterle (yani “!”, “(” ve “-”) başladığında yararlıdır.
-s: find komutunun dosya hiyerarşilerini sözlük sırasına göre, yani her dizin içinde alfabetik sırayla taramasını sağlar. Not: ‘find -s’ ve ‘find | sort’ farklı sonuçlar verebilir.
Örneğin, ‘find -s’ tüm içeriğiyle birlikte ‘foo’ dizinini ‘foo.’ dizininden önce koyar. Ancak ‘find | sort’, ASCII'de ‘.’ karakteri ‘/’ karakterinden önce geldiği için ‘foo.’ dizin adını ‘foo/bar’ gibi herhangi bir dizeden önce koyar. C dışındaki yerel ayarlarda (locales) sıralama farklılıkları nedeniyle sonuçlar daha da değişebilir.
-x: find komutunun, taramanın başladığı dosyanın cihaz numarasından farklı bir cihaz numarasına sahip dizinlere inmesini engeller.
Bu seçenek, artık kullanılmayan (deprecated) -xdev birincil öğesine eş değerdir.
Birincil Öğeler
Sayısal bir argüman alan tüm birincil öğeler, sayının önüne bir artı işareti (“+”) veya eksi işareti (“-”) konulmasına izin verir. Öndeki artı işareti “n'den fazla”, öndeki eksi işareti “n'den az” anlamına gelir ve her ikisinin de olmaması “tam olarak n” anlamına gelir.
-Bmin n Bir dosyanın inode oluşturulma zamanı ile find komutunun başlatıldığı zaman arasındaki fark, bir sonraki tam dakikaya yuvarlandığında n dakika ise doğrudur.
-Bnewer file -newerBm ile aynıdır.
-Btime n[smhdw] Hiçbir birim belirtilmezse, bir dosyanın inode oluşturulma zamanı ile find komutunun başlatıldığı zaman arasındaki fark, bir sonraki tam 24 saatlik döneme yuvarlandığında n adet 24 saatlik dönem ise doğru olarak değerlendirilir.
Birimler belirtilirse, bir dosyanın inode oluşturulma zamanı ile find komutunun başlatıldığı zaman arasındaki fark tam olarak n birim ise doğru olarak değerlendirilir. Desteklenen zaman birimleri hakkında bilgi için lütfen -atime birincil öğesinin açıklamasına bakın.
-acl: Genişletilmiş ACL'lere sahip dosyaları bulmak için diğer birincil öğelerle birlikte kullanılabilir. Daha fazla bilgi için acl(3) kılavuzuna bakın.
-amin [-|+]n Dosyaya son erişim zamanı ile find komutunun başlatıldığı zaman arasındaki fark, bir sonraki tam dakikaya yuvarlandığında n dakikadan fazla (+n), n dakikadan az (-n) veya tam olarak n dakika önce ise doğrudur.
-anewer file -neweram ile aynıdır.
-atime n[smhdw] Hiçbir birim belirtilmezse, dosyaya son erişim zamanı ile find komutunun başlatıldığı zaman arasındaki fark, bir sonraki tam 24 saatlik döneme yuvarlandığında n adet 24 saatlik dönem ise doğru olarak değerlendirilir.
Birimler belirtilirse, dosyaya son erişim zamanı ile find komutunun başlatıldığı zaman arasındaki fark tam olarak n birim ise doğru olarak değerlendirilir. Olası zaman birimleri aşağıdaki gibidir:
s saniye m dakika (60 saniye) h saat (60 dakika) d gün (24 saat) w hafta (7 gün)
Bir -atime argümanında herhangi bir sayıda birim birleştirilebilir, örneğin “-atime -1h30m”. Birimler muhtemelen yalnızca + veya - değiştiricisiyle birlikte kullanıldığında yararlıdır.
-cmin [-|+]n Dosya durumu bilgilerinin (status information) son değiştirilme zamanı ile find komutunun başlatıldığı zaman arasındaki fark, bir sonraki tam dakikaya yuvarlandığında n dakikadan fazla (+n), n dakikadan az (-n) veya tam olarak n dakika önce ise doğrudur.
-cnewer file -newercm ile aynıdır.
-ctime n[smhdw] Hiçbir birim belirtilmezse, dosya durumu bilgilerinin son değiştirilme zamanı ile find komutunun başlatıldığı zaman arasındaki fark, bir sonraki tam 24 saatlik döneme yuvarlandığında n adet 24 saatlik dönem ise doğru olarak değerlendirilir.
Birimler belirtilirse, dosya durumu bilgilerinin son değiştirilme zamanı ile find komutunun başlatıldığı zaman arasındaki fark tam olarak n birim ise doğru olarak değerlendirilir. Desteklenen zaman birimleri hakkında bilgi için lütfen -atime birincil öğesinin açıklamasına bakın.
-d: Taşınabilir olmayan, BSD'ye özgü depth sürümüdür. GNU find, FreeBSD find'ın hatalı bir taklidi olarak bunu bir birincil öğe olarak uygular.
-delete Bulunan dosyaları ve/veya dizinleri siler. Her zaman doğru (true) döndürür. Bu, find ağaçta aşağı doğru inerken geçerli çalışma dizininden yürütülür. Güvenlik nedenleriyle, “.” konumuna göre göreceli yol adında “/” karakteri içeren bir dosya adını silmeye çalışmaz. Bu seçenekle derinlik öncelikli arama işlemi ima edilir. -delete birincil öğesi, boş olmayan bir dizini silemez. Sembolik bağları takip etmek bu seçenekle uyumsuzdur.
UYARI: -delete birincil öğesi değerlendirildiğinde hemen geçerli yolu silmeye çalışacaktır. İfadedeki yerine dikkat edin; genel bir kural olarak, neredeyse her zaman en sonda yer almalıdır. Şüpheye düşerseniz, önce -delete yerine -print ile çalıştırmayı deneyin. Değerlendirme sırası hakkında ek bilgi için aşağıdaki OPERATÖRLER bölümüne bakın.
-depth: Her zaman doğrudur; taşınabilir olmayan -d seçeneği ile aynıdır. find komutunun derinlik öncelikli bir arama yapmasını sağlar, yani dizinler ardıl sırada (post-order) ziyaret edilir ve dizinin kendisinden önce dizindeki tüm girdiler üzerinde işlem yapılır. Varsayılan olarak find dizinleri öncül sırada (pre-order), yani içeriklerinden önce ziyaret eder. Not: Varsayılan davranış genişlik öncelikli bir arama değildir.
-depth birincil öğesi, find komutunun cpio(1) ile birlikte olağan dışı izinlere sahip dizinlerde bulunan dosyaları işlemek için kullanıldığında yararlı olabilir. Bir dizine dosya yerleştirirken yazma izninizin olmasını sağlar, ardından son işlem olarak dizinin izinlerini ayarlar.
-depth n Dosyanın taramanın başlangıç noktasına göre derinliği n ise doğrudur.
-empty: Geçerli dosya veya dizin boşsa doğrudur.
-exec utility [argument ...] ; utility adındaki program çıkış durumu olarak sıfır değeri döndürürse doğrudur. Program için isteğe bağlı argümanlar geçilebilir. İfade bir noktalı virgül (“;”) ile sonlandırılmalıdır. find komutunu bir kabuktan (shell) çağırıyorsanız, kabuğun onu bir kontrol operatörü olarak ele almasını önlemek için noktalı virgülü tırnak içine almanız gerekebilir. “{}” dizesi program adında veya argümanlarda herhangi bir yerde görünürse, geçerli dosyanın yol adıyla değiştirilir. Program, find komutunun yürütüldüğü dizinden yürütülecektir. Program ve argümanlar, kabuk kalıplarının (shell patterns) ve yapılarının daha fazla genişletilmesine tabi tutulmaz.
-exec utility [argument ...] {} + -exec ile aynıdır, ancak “{}” ifadesi programın her çağrısı için mümkün olduğunca çok yol adıyla değiştirilir. Bu davranış xargs(1) davranışına benzer. Bu birincil öğe her zaman doğru döndürür; programın en az bir çağrısı sıfır olmayan bir çıkış durumu döndürürse, find sıfır olmayan bir çıkış durumu döndürecektir.
-execdir utility [argument ...] ; -execdir birincil öğesi, programın geçerli dosyayı barındıran dizinden yürütülecek olması dışında -exec birincil öğesiyle aynıdır. “{}” dizesi yerine konulan dosya adı nitelendirilmemiştir (tam yol değildir).
-execdir utility [argument ...] {} + -execdir ile aynıdır, ancak “{}” ifadesi programın her çağrısı için mümkün olduğunca çok yol adıyla değiştirilir. Bu davranış xargs(1) davranışına benzer. Bu birincil öğe her zaman doğru döndürür; programın en az bir çağrısı sıfır olmayan bir çıkış durumu döndürürse, find sıfır olmayan bir çıkış durumu döndürecektir.
-flags [-|+]flags,notflags Bayraklar sembolik adlar kullanılarak belirtilir (bkz. chflags(1)). "no" önekine sahip olanlar ("nodump" hariç) notflags olarak adlandırılır. flags içindeki bayrakların ayarlanmış olup olmadığı, notflags içindeki bayrakların ise ayarlanmamış olup olmadığı kontrol edilir. Bunun, kullanıcının yalnızca ayarlanmış mod bitlerini belirtmesine izin veren -perm seçeneğinden farklı olduğunu unutmayın.
Bayrakların önüne bir eksi işareti (“-”) gelirse, dosyanın bayrak bitlerinde flags içindeki bitlerin en azından tümü ayarlanmışsa ve notflags içindeki bitlerin hiçbiri ayarlanmamışsa bu birincil öğe doğru olarak değerlendirilir. Bayrakların önüne bir artı işareti (“+”) gelirse, dosyanın bayrak bitlerinde flags içindeki bitlerden herhangi biri ayarlanmışsa veya notflags içindeki bitlerden herhangi biri ayarlanmamışsa doğru olarak değerlendirilir. Aksi takdirde, flags içindeki bitler dosyanın bayrak bitleriyle tam olarak eşleşiyorsa ve notflags içindeki bitlerin hiçbiri eşleşmiyorsa doğru olarak değerlendirilir.
-fstype type Dosya, type türündeki bir dosya sisteminde bulunuyorsa doğrudur. lsvfs(1) komutu, sistemde mevcut olan dosya sistemi türlerini öğrenmek için kullanılabilir. Ek olarak, “local” ve “rdonly” olmak üzere iki sahte tür vardır. İlki, find komutunun yürütüldüğü sisteme fiziksel olarak bağlı olan herhangi bir dosya sistemiyle eşleşir, ikincisi ise salt okunur olarak bağlı olan herhangi bir dosya sistemiyle eşleşir.
-gid gname GNU find ile uyumluluk için -group gname ile aynı şeydir. GNU find, gname değerinin sayısal olması kısıtlamasını getirirken, find bunu yapmaz.
-group gname Dosya gname grubuna aitse doğrudur. gname sayısal ise ve böyle bir grup adı yoksa, gname bir grup kimliği (GID) olarak kabul edilir.
-ignore_readdir_race Bir dizinden ad okunduktan sonra bir dosya veya dizinin silinmesi nedeniyle oluşan hataları yok sayar. Bu seçenek başlangıç noktalarında meydana gelen hataları etkilemez.
-ilname pattern -lname gibidir, ancak eşleştirme büyük/küçük harfe duyarsızdır. Bu bir GNU find uzantısıdır.
-iname pattern -name gibidir, ancak eşleştirme büyük/küçük harfe duyarsızdır.
-inum n Dosya n inode numarasına sahipse doğrudur.
-ipath pattern -path gibidir, ancak eşleştirme büyük/küçük harfe duyarsızdır.
-iregex pattern -regex gibidir, ancak eşleştirme büyük/küçük harfe duyarsızdır.
-iwholename pattern GNU find uyumluluğu için -ipath ile aynı şeydir.
-links n Dosya n adet bağa (links) sahipse doğrudur.
-lname pattern -name gibidir, ancak dosya adı yerine sembolik bağın içeriği eşleştirilir. Sembolik bağlar takip ediliyorsa, bunun yalnızca bozuk sembolik bağlarla eşleşeceğini unutmayın. Bu bir GNU find uzantısıdır.
-ls: Bu birincil öğe her zaman doğru olarak değerlendirilir. Geçerli dosya için aşağıdaki bilgiler standart çıktıya yazılır: inode numarası, 512 baytlık bloklar cinsinden boyutu, dosya izinleri, sabit bağ (hard link) sayısı, sahibi, grubu, bayt cinsinden boyutu, son değiştirilme zamanı ve yol adı. Dosya bir blok veya karakter özel dosyası ise, bayt cinsinden boyut yerine cihaz numarası görüntülenecektir. Dosya bir sembolik bağ ise, bağlanan dosyanın yol adı önüne “->” gelerek görüntülenecektir. Biçim, “ls -dgils” tarafından üretilen biçimle aynıdır.
-maxdepth n Her zaman doğrudur; komut satırı argümanlarının en fazla n dizin seviyesi altına iner. Herhangi bir -maxdepth birincil öğesi belirtilirse, normalde değerlendirilmese bile tüm ifadeye uygulanır. “-maxdepth 0” tüm aramayı komut satırı argümanlarıyla sınırlar.
-mindepth n Her zaman doğrudur; n seviyesinden daha az seviyelerde hiçbir test veya eylem uygulamaz. Herhangi bir -mindepth birincil öğesi belirtilirse, normalde değerlendirilmese bile tüm ifadeye uygulanır. “-mindepth 1” komut satırı argümanları hariç tümünü işler.
-mmin [-|+]n Dosyanın son değiştirilme zamanı ile find komutunun başlatıldığı zaman arasındaki fark, bir sonraki tam dakikaya yuvarlandığında n dakikadan fazla (+n), n dakikadan az (-n) veya tam olarak n dakika önce ise doğrudur.
-mnewer file -newer ile aynıdır.
-mount: GNU find uyumluluğu için -xdev ile aynı şeydir.
-mtime n[smhdw] Hiçbir birim belirtilmezse, dosyanın son değiştirilme zamanı ile find komutunun başlatıldığı zaman arasındaki fark, bir sonraki tam 24 saatlik döneme yuvarlandığında n adet 24 saatlik dönem ise doğru olarak değerlendirilir.
Birimler belirtilirse, dosyanın son değiştirilme zamanı ile find komutunun başlatıldığı zaman arasındaki fark tam olarak n birim ise doğru olarak değerlendirilir. Desteklenen zaman birimleri hakkında bilgi için lütfen -atime birincil öğesinin açıklamasına bakın.
-name pattern İncelenmekte olan yol adının son bileşeni pattern kalıbıyla eşleşiyorsa doğrudur. Özel kabuk kalıbı eşleştirme karakterleri (“[”, “]”, “*” ve “?”) pattern kalıbının bir parçası olarak kullanılabilir. Bu karakterler, önlerine bir ters bölü (“\”) konularak kaçış karakteriyle açıkça eşleştirilebilir.
-newer file Geçerli dosya, file dosyasından daha yeni bir son değiştirilme zamanına sahipse doğrudur.
-newerXY file Geçerli dosya, file dosyasının son erişim zamanı (Y=a), inode oluşturulma zamanı (Y=B), durum değiştirme zamanı (Y=c) veya son değiştirilme zamanından (Y=m) daha yeni bir son erişim zamanına (X=a), inode oluşturulma zamanına (X=B), durum değiştirme zamanına (X=c) veya son değiştirilme zamanına (X=m) sahipse doğrudur. Ek olarak, Y=t ise, file bunun yerine ISO8601 veya RFC822 tarafından anlaşılan biçimde doğrudan bir tarih belirtimi olarak yorumlanır. -newermm seçeneğinin -newer ile eş değer olduğunu unutmayın.
-nogroup Dosya bilinmeyen bir gruba aitse doğrudur.
-noignore_readdir_race -ignore_readdir_race etkisini kapatır. Varsayılan davranış budur.
-noleaf Bu seçenek GNU find uyumluluğu içindir. GNU find'da find için geçerli olmayan bir optimizasyonu devre dışı bırakır, bu nedenle yoksayılır.
-nouser Dosya bilinmeyen bir kullanıcıya aitse doğrudur.
-ok utility [argument ...] ; -ok birincil öğesi, find komutunun programın yürütülmesi için terminale bir mesaj yazdırıp bir yanıt okuyarak kullanıcı onayı istemesi dışında -exec birincil öğesiyle aynıdır. Yanıt olumlu değilse (“POSIX” yerel ayarında ‘y’), komut yürütülmez ve -ok ifadesinin değeri yanlış olur.
-okdir utility [argument ...] ; -okdir birincil öğesi, -ok birincil öğesi için açıklanan istisna dışında -execdir birincil öğesiyle aynıdır.
-path pattern İncelenmekte olan yol adı pattern kalıbıyla eşleşiyorsa doğrudur. Özel kabuk kalıbı eşleştirme karakterleri (“[”, “]”, “*” ve “?”) pattern kalıbının bir parçası olarak kullanılabilir. Bu karakterler, önlerine bir ters bölü (“\”) konularak kaçış karakteriyle açıkça eşleştirilebilir. Bölü işaretleri (“/”) normal karakterler olarak kabul edilir ve açıkça eşleştirilmeleri gerekmez.
-perm [-|+]mode mode seçeneği sembolik (bkz. chmod(1)) veya sekizlik (octal) bir sayı olabilir. Mod sembolik ise, başlangıç değeri sıfır olarak kabul edilir ve mod, sürecin dosya modu oluşturma maskesini (umask) dikkate almaksızın izinleri ayarlar veya temizler. Mod sekizlik ise, karşılaştırmaya yalnızca dosyanın mod bitlerinin 07777 (S_ISUID | S_ISGID | S_ISTXT | S_IRWXU | S_IRWXG | S_IRWXO) bitleri katılır. Modun önüne bir eksi işareti (“-”) gelirse, moddaki bitlerin en azından tümü dosyanın mod bitlerinde ayarlanmışsa bu birincil öğe doğru olarak değerlendirilir. Modun önüne bir artı işareti (“+”) gelirse, moddaki bitlerden herhangi biri dosyanın mod bitlerinde ayarlanmışsa doğru olarak değerlendirilir. Aksi takdirde, moddaki bitler dosyanın mod bitleriyle tam olarak eşleşiyorsa doğru olarak değerlendirilir. Sembolik bir modun ilk karakterinin eksi işareti (“-”) olamayacağını unutmayın.
-print: Bu birincil öğe her zaman doğru olarak değerlendirilir. Geçerli dosyanın yol adını standart çıktıya yazdırır. -exec, -ls, -print, -print0 veya -ok seçeneklerinden hiçbiri belirtilmemişse, verilen ifade fiilen ( verilen ifade ) -print ile değiştirilecektir.
-print0 Bu birincil öğe her zaman doğru olarak değerlendirilir. Geçerli dosyanın yol adını standart çıktıya yazdırır ve ardından bir ASCII NUL karakteri (karakter kodu 0) ekler.
-prune: Bu birincil öğe her zaman doğru olarak değerlendirilir. find komutunun geçerli dosyaya/dizine inmemesini sağlar. -d seçeneği belirtilmişse -prune birincil öğesinin hiçbir etkisi olmadığını unutmayın.-quit: find komutunun hemen sonlanmasına neden olur.
-regex pattern Dosyanın tüm yolu düzenli ifade kullanılarak pattern kalıbıyla eşleşiyorsa doğrudur. “./foo/xyzzy” adındaki bir dosyayı eşleştirmek için “./[xyz]” veya “./foo/.” düzenli ifadelerini kullanabilirsiniz, ancak “xyzzy” or “/foo/” kullanamazsınız.
-samefile name Dosya, name dosyasına bir sabit bağ (hard link) ise doğrudur. -L komut seçeneği belirtilmişse, dosya bir sembolik bağ olduğunda ve name dosyasını işaret ettiğinde de doğrudur.
-size n[ckMGTP] Dosyanın 512 baytlık bloklar cinsinden yuvarlatılmış boyutu n ise doğrudur. n'den sonra bir c gelirse, dosyanın boyutu n bayt (karakter) ise birincil öğe doğrudur. Benzer şekilde, n'den sonra bir ölçek göstergesi gelirse, dosyanın boyutu şu şekilde ölçeklendirilmiş n ile karşılaştırılır:
k kilobayt (1024 bayt) M megabayt (1024 kilobayt) G gigabayt (1024 megabayt) T terabayt (1024 gigabayt) P petabayt (1024 terabayt)
-sparse Geçerli dosya seyrek (sparse) ise, yani bayt cinsinden boyutuna göre beklenenden daha az blok ayrılmışsa doğrudur. Bu seçenek, dosya sistemi tarafından sıkıştırılmış dosyalarla da eşleşebilir.
-type t Dosya belirtilen türde ise doğrudur. Olası dosya türleri aşağıdaki gibidir:
b blok özel (block special) c karakter özel (character special) d dizin (directory) f normal dosya (regular file) l sembolik bağ (symbolic link) p FIFO s soket (socket)
-uid uname GNU find ile uyumluluk için -user uname ile aynı şeydir. GNU find, uname değerinin sayısal olması kısıtlamasını getirirken, find bunu yapmaz.
-user uname Dosya uname kullanıcısına aitse doğrudur. uname sayısal ise ve böyle bir kullanıcı adı yoksa, uname bir kullanıcı kimliği (UID) olarak kabul edilir.
-wholename pattern GNU find uyumluluğu için -path ile aynı şeydir.
-xattr: Dosyanın herhangi bir genişletilmiş özniteliği (extended attribute) varsa doğrudur.
-xattrname name Dosyanın belirtilen ada sahip bir genişletilmiş özniteliği varsa doğrudur.
Operatörler
Birincil öğeler aşağıdaki operatörler kullanılarak birleştirilebilir. Operatörler öncelik sırasına göre azalan şekilde listelenmiştir.
( expression ) Parantez içindeki ifade doğru olarak değerlendirilirse doğru olur.
! expression -not expression Bu tekli NOT (DEĞİL) operatörüdür. İfade yanlışsa doğru olarak değerlendirilir.
-false: Her zaman yanlıştır.-true: Her zaman doğrudur.
expression -and expression expression expression -and operatörü mantıksal AND (VE) operatörüdür. İki ifadenin yan yana getirilmesiyle ima edildiğinden belirtilmesi gerekmez. Her iki ifade de doğruysa ifade doğru olarak değerlendirilir. İlk ifade yanlışsa ikinci ifade değerlendirilmez.
expression -or expression -or operatörü mantıksal OR (VEYA) operatörüdür. Birinci veya ikinci ifadeden biri doğruysa ifade doğru olarak değerlendirilir. İlk ifade doğruysa ikinci ifade değerlendirilmez.
Tüm terimler ve birincil öğeler find için ayrı argümanlar olmalıdır. Kendileri argüman alan birincil öğeler, her bir argümanın find için ayrı bir argüman olmasını bekler.
Çevre
LANG, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES ve LC_TIME çevre değişkenleri find aracının yürütülmesini environ(7) sayfasında açıklandığı gibi etkiler.
Örnekler
Aşağıdaki örnekler kabuğa (shell) verildiği şekilde gösterilmiştir:
find / \! -name "*.c" -print
Adı .c ile bitmeyen tüm dosyaların listesini yazdırır.
find / -newer ttt -user wnj -print
Sahibi “wnj” kullanıcısı olan ve ttt dosyasından daha yeni olan tüm dosyaların listesini yazdırır.
find / \! \( -newer ttt -user wnj \) -print
Hem ttt dosyasından daha yeni olmayan hem de sahibi “wnj” olmayan tüm dosyaların listesini yazdırır.
find / \( -newer ttt -or -user wnj \) -print
Sahibi “wnj” olan veya ttt dosyasından daha yeni olan tüm dosyaların listesini yazdırır.
find / -newerct '1 minute ago' -print
Inode değişim zamanı geçerli zamandan eksi bir dakikadan daha yeni olan tüm dosyaların listesini yazdırır.
find / -type f -exec echo {} \;
Tüm dosyaların listesini yazdırmak için echo(1) komutunu kullanır.
find -L /usr/ports/packages -type l -exec rm -- {} +
/usr/ports/packages altındaki tüm bozuk sembolik bağları siler.
find /usr/src -name CVS -prune -o -depth +6 -print
/usr/src çalışma dizininde en az yedi seviye derinlikte olan dosyaları ve dizinleri bulur.
find /usr/src -name CVS -prune -o -mindepth 7 -print
-prune yedi seviyesinin altında değerlendirilmediğinden bir önceki örnekle eş değer değildir.
Uyumluluk
-follow birincil öğesi artık kullanılmamaktadır (deprecated); bunun yerine -L seçeneği kullanılmalıdır. Ayrıntılar için aşağıdaki STANDARTLAR bölümüne bakın.
Ayrıca Bkz.
chflags(1), chmod(1), locate(1), lsvfs(1), whereis(1), which(1), xargs(1), stat(2), acl(3), fts(3), getgrent(3), getpwent(3), strmode(3), ascii(7), re_format(7), symlink(7)
Standartlar
find aracı söz dizimi, IEEE Std 1003.1-2001 (“POSIX.1”) standardı tarafından belirtilen söz diziminin bir üst kümesidir.
-H ve -L dışındaki tüm tek karakterli seçeneklerin yanı sıra -amin, -anewer, -cmin, -cnewer, -delete, -empty, -fstype, -iname, -inum, -iregex, -ls, -maxdepth, -mindepth, -mmin, -not, -path, -print0, -regex, -sparse ve doğum zamanıyla ilgili tüm -B* birincil öğeleri IEEE Std 1003.1-2001 (“POSIX.1”) standardına yapılan uzantılardır.
Tarihsel olarak, -d, -L ve -x seçenekleri sırasıyla -depth, -follow ve -xdev birincil öğeleri kullanılarak uygulanmıştır. Bu birincil öğeler her zaman doğru olarak değerlendirilmiştir. Tarama başlamadan önce yürürlüğe giren küresel değişkenler olduklarından, bazı yasal ifadeler beklenmedik sonuçlar verebilirdi. Bir örnek -print -o -depth ifadesidir. -print her zaman doğru olarak değerlendirildiğinden, standart değerlendirme sırası -depth seçeneğinin asla değerlendirilmeyeceğini ima ederdi. Ancak durum böyle değildir.
-or operatörü -o olarak, -and operatörü ise -a olarak uygulanmıştı.
-exec ve -ok birincil öğelerinin tarihsel uygulamaları, önünde veya arkasında boşluk olmayan karakterler varsa, program adındaki veya program argümanlarındaki “{}” dizesini değiştirmezdi. Bu sürüm, program adında veya argümanlarında nerede göründüğüne bakılmaksızın onu değiştirir.
-E seçeneği, eş değer grep(1) ve sed(1) seçeneklerinden esinlenmiştir.
Tarihçe
Version 1 AT&T UNIX sürümünde basit bir find komutu yer almış ve Version 3 AT&T UNIX sürümünde kaldırılmıştır. Version 5 AT&T UNIX için yeniden yazılmış ve daha sonra Programmer's Workbench (PWB) için geliştirilmiştir. Bu değişiklikler daha sonra Version 7 AT&T UNIX sürümüne dahil edilmiştir.
Hatalar
find tarafından kullanılan özel karakterler, birçok kabuk programı için de özel karakterlerdir. Özellikle “*”, “[”, “]”, “?”, “(”, “)”, “!”, “\” ve “;” karakterlerinin kabuktan kaçırılması gerekebilir.
Seçenekler ile dosya adlarını veya dosya adları ile ifadeyi ayıran bir sınırlayıcı olmadığından, -xdev veya ! adındaki dosyaları belirtmek zordur. Bu sorunlar -f seçeneği ve getopt(3) “--” yapısı ile çözülmektedir.
-delete birincil öğesi, dosya sistemi ağacı tarama seçeneklerinin değiştirilmesine neden olan diğer seçeneklerle iyi etkileşime girmez.
-mindepth ve -maxdepth birincil öğeleri aslında küresel seçeneklerdir (yukarıda belgelendiği gibi). Muhtemelen seçenek gibi görünen seçeneklerle değiştirilmelidirler.
macOS 26.4 22 Aralık 2023 macOS 26.4