Ö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:-regexve-iregexbirincil öğ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)-followbirincil öğ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:findkomutununxargs(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 olarakxargs -0ile birlikte-print0birincil öğesini kullanmayı düşünebilirsiniz.-d:findkomutunun derinlik öncelikli bir arama yapmasını sağlar. Bu seçenek, IEEE Std 1003.1-2001 (“POSIX.1”) tarafından belirtilen-depthbirincil öğesinin BSD'ye özgü bir eş değeridir. Daha fazla bilgi için Birincil Öğeler altındaki açıklamasına bakın.-f path: Yinelemeli olarak girilecek yollar listesinepathyolunu ekler. Bu seçenek,pathyolu aksi takdirde bir ifade olarak yorumlanabilecek bir karakterle (yani!,(ve-) başladığında yararlıdır.-s:findkomutunun 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 -svefind | sortfarklı sonuçlar verebilir. Örneğin,find -stüm içeriğiyle birliktefoodizininifoo.dizininden önce koyar. Ancakfind | sort, ASCII'de.karakteri/karakterinden önce geldiği içinfoo.dizin adınıfoo/bargibi herhangi bir dizeden önce koyar. C dışındaki yerel ayarlarda (locales) sıralama farklılıker nedeniyle sonuçlar daha da değişebilir.-x:findkomutunun, 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)-xdevbirincil öğ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ı ilefindkomutunun başlatıldığı zaman arasındaki fark, bir sonraki tam dakikaya yuvarlandığındandakika ise doğrudur.-Bnewer file:-newerBmile aynıdır.-Btime n[smhdw]: Hiçbir birim belirtilmezse, bir dosyanın inode oluşturulma zamanı ilefindkomutunun başlatıldığı zaman arasındaki fark, bir sonraki tam 24 saatlik döneme yuvarlandığındanadet 24 saatlik dönem ise doğru olarak değerlendirilir.Birimler belirtilirse, bir dosyanın inode oluşturulma zamanı ile
findkomutunun başlatıldığı zaman arasındaki fark tam olaraknbirim ise doğru olarak değerlendirilir. Desteklenen zaman birimleri hakkında bilgi için lütfen-atimebirincil öğ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çinacl(3)kılavuzuna bakın.-amin [-|+]n: Dosyaya son erişim zamanı ilefindkomutunun başlatıldığı zaman arasındaki fark, bir sonraki tam dakikaya yuvarlandığındandakikadan fazla (+n),ndakikadan az (-n) veya tam olarakndakika önce ise doğrudur.-anewer file:-neweramile aynıdır.-atime n[smhdw]: Hiçbir birim belirtilmezse, dosyaya son erişim zamanı ilefindkomutunun başlatıldığı zaman arasındaki fark, bir sonraki tam 24 saatlik döneme yuvarlandığındanadet 24 saatlik dönem ise doğru olarak değerlendirilir.Birimler belirtilirse, dosyaya son erişim zamanı ile
findkomutunun başlatıldığı zaman arasındaki fark tam olaraknbirim ise doğru olarak değerlendirilir. Olası zaman birimleri aşağıdaki gibidir:Birim Açıklama sSaniye mDakika (60 saniye) hSaat (60 dakika) dGün (24 saat) wHafta (7 gün) Bir
-atimeargü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ı ilefindkomutunun başlatıldığı zaman arasındaki fark, bir sonraki tam dakikaya yuvarlandığındandakikadan fazla (+n),ndakikadan az (-n) veya tam olarakndakika önce ise doğrudur.-cnewer file:-newercmile aynıdır.-ctime n[smhdw]: Hiçbir birim belirtilmezse, dosya durumu bilgilerinin son değiştirilme zamanı ilefindkomutunun başlatıldığı zaman arasındaki fark, bir sonraki tam 24 saatlik döneme yuvarlandığındanadet 24 saatlik dönem ise doğru olarak değerlendirilir.Birimler belirtilirse, dosya durumu bilgilerinin son değiştirilme zamanı ile
findkomutunun başlatıldığı zaman arasındaki fark tam olaraknbirim ise doğru olarak değerlendirilir. Desteklenen zaman birimleri hakkında bilgi için lütfen-atimebirincil öğesinin açıklamasına bakın.-d: Taşınabilir olmayan, BSD'ye özgüdepthsürümüdür. GNUfind, FreeBSDfind'ı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,findağ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.-deletebirincil öğesi, boş olmayan bir dizini silemez. Sembolik bağları takip etmek bu seçenekle uyumsuzdur.[!WARNING]
-deletebirincil öğ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-deleteyerine-printile ç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-dseçeneği ile aynıdır.findkomutunun 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 olarakfinddizinleri öncül sırada (pre-order), yani içeriklerinden önce ziyaret eder. Not: Varsayılan davranış genişlik öncelikli bir arama değildir.-depthbirincil öğesi,findkomutununcpio(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ğinise doğrudur.-empty: Geçerli dosya veya dizin boşsa doğrudur.-exec utility [argument ...] ;:utilityadı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.findkomutunu 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,findkomutunun 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 ...] {} +:-execile 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,findsıfır olmayan bir çıkış durumu döndürecektir.-execdir utility [argument ...] ;:-execdirbirincil öğesi, programın geçerli dosyayı barındıran dizinden yürütülecek olması dışında-execbirincil öğesiyle aynıdır.{}dizesi yerine konulan dosya adı nitelendirilmemiştir (tam yol değildir).-execdir utility [argument ...] {} +:-execdirile 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,findsı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ç)notflagsolarak adlandırılır.flagsiçindeki bayrakların ayarlanmış olup olmadığı,notflagsiçindeki bayrakların ise ayarlanmamış olup olmadığı kontrol edilir. Bunun, kullanıcının yalnızca ayarlanmış mod bitlerini belirtmesine izin veren-permseçeneğinden farklı olduğunu unutmayın.Bayrakların önüne bir eksi işareti (
-) gelirse, dosyanın bayrak bitlerindeflagsiçindeki bitlerin en azından tümü ayarlanmışsa venotflagsiç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 bitlerindeflagsiçindeki bitlerden herhangi biri ayarlanmışsa veyanotflagsiçindeki bitlerden herhangi biri ayarlanmamışsa doğru olarak değerlendirilir. Aksi takdirde,flagsiçindeki bitler dosyanın bayrak bitleriyle tam olarak eşleşiyorsa venotflagsiçindeki bitlerin hiçbiri eşleşmiyorsa doğru olarak değerlendirilir.-fstype type: Dosya,typetü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,localverdonlyolmak üzere iki sahte tür vardır. İlki,findkomutunun 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: GNUfindile uyumluluk için-group gnameile aynı şeydir. GNUfind,gnamedeğerinin sayısal olması kısıtlamasını getirirken,findbunu yapmaz.-group gname: Dosyagnamegrubuna aitse doğrudur.gnamesayısal ise ve böyle bir grup adı yoksa,gnamebir 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:-lnamegibidir, ancak eşleştirme büyük/küçük harfe duyarsızdır. Bu bir GNUfinduzantısıdır.-iname pattern:-namegibidir, ancak eşleştirme büyük/küçük harfe duyarsızdır.-inum n: Dosyaninode numarasına sahipse doğrudur.-ipath pattern:-pathgibidir, ancak eşleştirme büyük/küçük harfe duyarsızdır.-iregex pattern:-regexgibidir, ancak eşleştirme büyük/küçük harfe duyarsızdır.-iwholename pattern: GNUfinduyumluluğu için-ipathile aynı şeydir.-links n: Dosyanadet bağa (links) sahipse doğrudur.-lname pattern:-namegibidir, 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 GNUfinduzantı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 -dgilstarafından üretilen biçimle aynıdır.-maxdepth n: Her zaman doğrudur; komut satırı argümanlarının en fazlandizin seviyesi altına iner. Herhangi bir-maxdepthbirincil öğesi belirtilirse, normalde değerlendirilmese bile tüm ifadeye uygulanır.-maxdepth 0tüm aramayı komut satırı argümanlarıyla sınırlar.-mindepth n: Her zaman doğrudur;nseviyesinden daha az seviyelerde hiçbir test veya eylem uygulamaz. Herhangi bir-mindepthbirincil öğesi belirtilirse, normalde değerlendirilmese bile tüm ifadeye uygulanır.-mindepth 1komut satırı argümanları hariç tümünü işler.-mmin [-|+]n: Dosyanın son değiştirilme zamanı ilefindkomutunun başlatıldığı zaman arasındaki fark, bir sonraki tam dakikaya yuvarlandığındandakikadan fazla (+n),ndakikadan az (-n) veya tam olarakndakika önce ise doğrudur.-mnewer file:-newerile aynıdır.-mount: GNUfinduyumluluğu için-xdevile aynı şeydir.-mtime n[smhdw]: Hiçbir birim belirtilmezse, dosyanın son değiştirilme zamanı ilefindkomutunun başlatıldığı zaman arasındaki fark, bir sonraki tam 24 saatlik döneme yuvarlandığındanadet 24 saatlik dönem ise doğru olarak değerlendirilir.Birimler belirtilirse, dosyanın son değiştirilme zamanı ile
findkomutunun başlatıldığı zaman arasındaki fark tam olaraknbirim ise doğru olarak değerlendirilir. Desteklenen zaman birimleri hakkında bilgi için lütfen-atimebirincil öğesinin açıklamasına bakın.-name pattern: İncelenmekte olan yol adının son bileşenipatternkalıbıyla eşleşiyorsa doğrudur. Özel kabuk kalıbı eşleştirme karakterleri ([,],*ve?)patternkalı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,filedosyasından daha yeni bir son değiştirilme zamanına sahipse doğrudur.-newerXY file: Geçerli dosya,filedosyası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=tise,filebunun yerine ISO8601 veya RFC822 tarafından anlaşılan biçimde doğrudan bir tarih belirtimi olarak yorumlanır.-newermmseçeneğinin-newerile eş değer olduğunu unutmayın.-nogroup: Dosya bilinmeyen bir gruba aitse doğrudur.-noignore_readdir_race:-ignore_readdir_raceetkisini kapatır. Varsayılan davranış budur.-noleaf: Bu seçenek GNUfinduyumluluğu içindir. GNUfind'dafindiç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 ...] ;:-okbirincil öğesi,findkomutunun programın yürütülmesi için terminale bir mesaj yazdırıp bir yanıt okuyarak kullanıcı onayı istemesi dışında-execbirincil öğesiyle aynıdır. Yanıt olumlu değilse (“POSIX” yerel ayarınday), komut yürütülmez ve-okifadesinin değeri yanlış olur.-okdir utility [argument ...] ;:-okdirbirincil öğesi,-okbirincil öğesi için açıklanan istisna dışında-execdirbirincil öğesiyle aynıdır.-path pattern: İncelenmekte olan yol adıpatternkalıbıyla eşleşiyorsa doğrudur. Özel kabuk kalıbı eşleştirme karakterleri ([,],*ve?)patternkalı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:modeseç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,-print0veya-okseçeneklerinden hiçbiri belirtilmemişse, verilen ifade fiilen( verilen ifade ) -printile 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.findkomutunun geçerli dosyaya/dizine inmemesini sağlar.-dseçeneği belirtilmişse-prunebirincil öğesinin hiçbir etkisi olmadığını unutmayın.-quit:findkomutunun hemen sonlanmasına neden olur.-regex pattern: Dosyanın tüm yolu düzenli ifade kullanılarakpatternkalıbıyla eşleşiyorsa doğrudur../foo/xyzzyadındaki bir dosyayı eşleştirmek için.*/[xyz]*veya.*/foo/.*düzenli ifadelerini kullanabilirsiniz, ancakxyzzyveya/foo/kullanamazsınız.-samefile name: Dosya,namedosyasına bir sabit bağ (hard link) ise doğrudur.-Lkomut seçeneği belirtilmişse, dosya bir sembolik bağ olduğunda venamedosyasını işaret ettiğinde de doğrudur.-size n[ckMGTP]: Dosyanın 512 baytlık bloklar cinsinden yuvarlatılmış boyutunise doğrudur.n'den sonra bircgelirse, dosyanın boyutunbayt (karakter) ise birincil öğe doğrudur. Benzer şekilde,n'den sonra bir ölçek göstergesi gelirse, dosyanın boyutu şu şekilde ölçeklendirilmişnile karşılaştırılır:Birim Açıklama cKarakter (bayt) kKilobayt (1024 bayt) MMegabayt (1024 kilobayt) GGigabayt (1024 megabayt) TTerabayt (1024 gigabayt) PPetabayt (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:Tür Açıklama bBlok özel (block special) cKarakter özel (character special) dDizin (directory) fNormal dosya (regular file) lSembolik bağ (symbolic link) pFIFO sSoket (socket) -uid uname: GNUfindile uyumluluk için-user unameile aynı şeydir. GNUfind,unamedeğerinin sayısal olması kısıtlamasını getirirken,findbunu yapmaz.-user uname: Dosyaunamekullanıcısına aitse doğrudur.unamesayısal ise ve böyle bir kullanıcı adı yoksa,unamebir kullanıcı kimliği (UID) olarak kabul edilir.-wholename pattern: GNUfinduyumluluğu için-pathile 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.
(ifade): Parantez içindeki ifade doğru olarak değerlendirilirse doğru olur.!ifade veya-notifade: 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.ifade
-andifade veya ifade ifade:-andoperatö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.ifade
-orifade:-oroperatö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 kabukta (shell) çalıştırılabilecek şekilde gösterilmiştir:
Adı
.cile bitmeyen tüm dosyaları bulma:find / \! -name "*.c" -printAdı
.cile bitmeyen tüm dosyaların listesini yazdırır.Belirli bir dosyadan daha yeni ve belirli bir kullanıcıya ait dosyaları bulma:
find / -newer ttt -user wnj -printSahibi
wnjkullanıcısı olan vetttdosyasından daha yeni olan tüm dosyaların listesini yazdırır.Hem bir dosyadan daha yeni olmayan hem de belirli bir kullanıcıya ait olmayan dosyaları bulma:
find / \! \( -newer ttt -user wnj \) -printHem
tttdosyasından daha yeni olmayan hem de sahibiwnjolmayan tüm dosyaların listesini yazdırır.Sahibi belirli bir kullanıcı olan veya bir dosyadan daha yeni olan dosyaları bulma:
find / \( -newer ttt -or -user wnj \) -printSahibi
wnjolan veyatttdosyasından daha yeni olan tüm dosyaların listesini yazdırır.Son 1 dakika içinde inode'u değişmiş dosyaları bulma:
find / -newerct '1 minute ago' -printInode değişim zamanı geçerli zamandan eksi bir dakikadan daha yeni olan tüm dosyaların listesini yazdırır.
Tüm dosyaları listelemek için başka bir komut çalıştırma (
echo):find / -type f -exec echo {} \;Tüm dosyaların listesini yazdırmak için
echo(1)komutunu kullanır.Bozuk sembolik bağları silme:
find -L /usr/ports/packages -type l -exec rm -- {} +/usr/ports/packages altındaki tüm bozuk sembolik bağları siler.
Belirli bir derinlikteki dosyaları arama (ve
CVSdizinlerini atlama):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.
Derinlik aramasında
-mindepthalternatifi:find /usr/src -name CVS -prune -o -mindepth 7 -print-pruneyedi 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, -ipath, -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.