Linux find komutu: -name, -type, -size, -mtime seçenekleri ve -delete

Test ortamıRHEL ailesiAlmaLinux 9.8findutils 4.8root hesabıDebian 12 · findutils 4.9 normal hesap2026-10-31 tarihinde kontrol edildi

Linux find komutu, başlangıç klasöründen aşağı doğru sırayla inerek ad, tür, boyut, değiştirilme zamanı ve izin gibi koşullara uyan dosya ve klasörleri bulan komuttur. AlmaLinux 9 sunucusundaki test klasöründe on dosya oluşturup koşulları tek tek değiştirerek çalıştırdığımızda, bulunan dosyaları -exec ile başka komutlara verip silerken -delete öncesinde aynı koşullarla önce listeyi kontrol etmeye başladık.

Sonuç kutularındaki test klasörü yolları ve dosya zamanları örnek değerlerle değiştirildi. Debian 12 sunucusunun çıktısında yalnızca ana klasör yolu örnek değerdir, geri kalanı olduğu gibidir.

1️⃣ Linux find komutunun kullanımı

  • ↪️ Başlangıç yolu, -name ve -iname

Temel biçim [find başlangıç-yolu koşullar] şeklindedir. Başlangıç yolu yazılmazsa geçerli klasörde (.) arar, koşul yazılmazsa başlangıç yolunun altındaki tüm dosya ve klasörleri yazdırır.

Test, aşağıdaki gibi üç klasör ve on dosya oluşturulan /root/work içinde yapıldı.

/root/work
docs/
readme.txt450 bayt · 3 gün önce
guide.txt5,000 bayt
old.tmp64 bayt · 10 gün önce
logs/
app.log2MB
cache.tmp512 bayt · 10 gün önce
backup/Boş klasör
report.txt1,200 bayt
README.md300 bayt · 3 gün önce
run.sh18 bayt · izin 755
my notes.txt150 bayt · 3 gün önce · izin 600
empty.txt0 bayt
find /root/work
/root/work
/root/work/docs
/root/work/docs/readme.txt
/root/work/docs/guide.txt
/root/work/docs/old.tmp
/root/work/logs
/root/work/logs/app.log
/root/work/logs/cache.tmp
/root/work/backup
/root/work/report.txt
/root/work/README.md
/root/work/run.sh
/root/work/my notes.txt
/root/work/empty.txt

find sonuçları ada göre sıralamaz; bu çalıştırmada docs klasörüne gelince önce içindeki tüm dosyaları yazdırdı, sonra logs klasörüne geçti.

Birden çok koşulu art arda yazarsanız yalnızca hepsine uyan dosyalar kalır.

-name, yolu değil yalnızca dosya adını desenle karşılaştırır. Kabuğun * karakterini önce açmaması ve find komutuna olduğu gibi vermesi için deseni tek tırnakla sarmalısınız.

find /root/work -name '*.txt'
/root/work/docs/readme.txt
/root/work/docs/guide.txt
/root/work/report.txt
/root/work/my notes.txt
/root/work/empty.txt

-name büyük küçük harfe duyarlıdır. readme ile başlayan adlar arandığında yalnızca docs/readme.txt çıktı, -iname ile README.md de geldi.

find /root/work -name 'readme*'
/root/work/docs/readme.txt
find /root/work -iname 'readme*'
/root/work/docs/readme.txt
/root/work/README.md

find, findutils paketinde bulunur. [find --version] çıktısının ilk satırındaki sürüm AlmaLinux 9.8 sunucusunda findutils 4.8, Debian 12 sunucusunda 4.9 idi.

2️⃣ find -type d ve -maxdepth

  • ↪️ Dosya ve klasör seçme, arama derinliği

-type f yalnızca normal dosyaları, -type d yalnızca klasörleri bırakır.

find /root/work -type d
/root/work
/root/work/docs
/root/work/logs
/root/work/backup

Başlangıç yolu /root/work de klasör olduğu için ilk satırda çıktı. Aynı yolda -type f kullanınca on dosyanın tamamı çıktı.

-maxdepth, başlangıç yolundan kaç düzey aşağı inileceğini belirler. -maxdepth 1 ile docs ve logs içindeki dosyalar çıktı dışında kaldı ve yalnızca /root/work hemen altındaki beş dosya kaldı.

find /root/work -maxdepth 1 -type f
/root/work/report.txt
/root/work/README.md
/root/work/run.sh
/root/work/my notes.txt
/root/work/empty.txt

Tersine -mindepth 2, başlangıç yolunun hemen altını atlayıp yalnızca alt klasörlerdeki beş dosyayı yazdırdı.

find /root/work -mindepth 2 -type f
/root/work/docs/readme.txt
/root/work/docs/guide.txt
/root/work/docs/old.tmp
/root/work/logs/app.log
/root/work/logs/cache.tmp

man sayfası, -maxdepth gibi genel seçenekleri başlangıç yolunun hemen arkasına yazmanızı önerir. -maxdepth 1 seçeneğini -type f arkasına yazmak da aynı beş dosyayı verdi, ancak terminalde genel seçenekleri öne yazmanızı söyleyen bir uyarı satırı çıkar (man sayfasına göre).

Yalnızca kaç klasör veya dosya olduğunu görmek için çıktıyı wc -l komutuna verirsiniz. -type d çıktısını saymak, başlangıç yolu dahil 4 verdi.

find /root/work -type d | wc -l
4

-maxdepth 1 eklenince de 4 çıktı, çünkü üç alt klasörün hepsi başlangıç yolunun hemen altındadır.

find /root/work -maxdepth 1 -type d | wc -l
4

-mindepth 2 ile yalnızca alt klasörlerdeki dosyaları saymak 5 verdi.

find /root/work -mindepth 2 -type f | wc -l
5

3️⃣ find komutunda boyut ve zaman koşulları

  • ↪️ -size, -mtime, -mmin, -newer, -empty

Sayının önündeki + o değerden büyük, - küçük anlamına gelir, işaret yoksa tam o değerdir. -size birimleri aşağıdaki tablodadır (man sayfasına göre).

BirimBoyutEvet
c1 bayt-size +500c
k1,024 bayt-size +1k
M1,048,576 bayt-size +1M
G1,073,741,824 bayt-size +1G
(yok)512 baytlık bloklar-size +2
find /root/work -type f -size +1k
/root/work/docs/guide.txt
/root/work/logs/app.log
/root/work/report.txt

1k üzerindeki dosyalar 5,000 bayt olan guide.txt, 2MB olan app.log ve 1,200 bayt olan report.txt idi.

find /root/work -size +1M
/root/work/logs/app.log

-size iki kez yazılıp aralık belirlenince yalnızca 1k üzeri ve 100k altı iki dosya kaldı.

find /root/work -type f -size +1k -size -100k
/root/work/docs/guide.txt
/root/work/report.txt

-size, boyutu birime bölüp yukarı yuvarladıktan sonra karşılaştırır. Bu yüzden 300 bayt olan README.md de 1k sayılır ve -size -1k ile yalnızca boyutu 0 olan empty.txt çıktı.

find /root/work -type f -size -1k
/root/work/empty.txt

Zaman koşullarını görmek için README.md, my notes.txt ve docs/readme.txt dosyalarının değiştirilme zamanını 3 gün önceye, iki .tmp dosyasınınkini 10 gün önceye ayarladık. Her dosyada erişim, değiştirilme ve durum değişikliği olmak üzere üç zaman bulunur ve bunları stat komutu ile görebilirsiniz.

-mtime, son değişiklikten bu yana geçen süreyi 24 saatlik birimlerle sayar. -mtime -1 ile 24 saat içinde oluşturulan beş dosya çıktı.

find /root/work -type f -mtime -1
/root/work/docs/guide.txt
/root/work/logs/app.log
/root/work/report.txt
/root/work/run.sh
/root/work/empty.txt

-mtime +7 ile yalnızca 10 gün önceye ayarlanan iki .tmp dosyası çıktı. Eski günlükleri veya geçici dosyaları silmeden önce listeyi kontrol ederken bu biçimi kullanırsınız.

find /root/work -type f -mtime +7
/root/work/docs/old.tmp
/root/work/logs/cache.tmp

-mmin aynı hesabı dakika olarak yapar. -mmin -60 sonucu, -mtime -1 ile aynı beş dosyaydı.

find /root/work -type f -mmin -60
/root/work/docs/guide.txt
/root/work/logs/app.log
/root/work/report.txt
/root/work/run.sh
/root/work/empty.txt

-newer, başvuru dosyasından sonra değiştirilen dosyaları bulur. 3 gün önceye ayarlanan README.md başvuru alınınca ondan sonra oluşturulan beş dosya çıktı.

find /root/work -type f -newer /root/work/README.md
/root/work/docs/guide.txt
/root/work/logs/app.log
/root/work/report.txt
/root/work/run.sh
/root/work/empty.txt

-empty, boyutu 0 olan dosyaları ve içi boş klasörleri birlikte bulur; boş backup klasörü ile empty.txt çıktı.

find /root/work -empty
/root/work/backup
/root/work/empty.txt

4️⃣ find -perm ve -user koşulları

  • ↪️ İzin ve sahibe göre bulma, koşulları gruplama

-perm arkasına yalnızca sayı yazılırsa izni tam o değer olan dosyalar bulunur. -perm 644 ile 755 olan run.sh ve 600 olan my notes.txt dışarıda kaldı, sekiz dosya çıktı.

find /root/work -type f -perm 644
/root/work/docs/readme.txt
/root/work/docs/guide.txt
/root/work/docs/old.tmp
/root/work/logs/app.log
/root/work/logs/cache.tmp
/root/work/report.txt
/root/work/README.md
/root/work/empty.txt

Modun önüne - konursa yazılan izinlerin hepsine sahip dosyalar bulunur. Sahibin çalıştırma izni (u+x) olan tek dosya run.sh idi.

find /root/work -type f -perm -u+x
/root/work/run.sh

Modun önüne / konursa yazılan izinlerden biri bile olan dosyalar bulunur. 6000, SUID (4000) ile SGID (2000) toplamıdır; çalıştırıldığı anda sahibinin veya grubunun izniyle çalışan dosyaları sunucuda denetlerken bu biçim kullanılır.

Test klasöründe böyle bir dosya olmadığından run.sh dosyasına SUID verip çalıştırdığımızda run.sh çıktı.

chmod u+s /root/work/run.sh
find /root/work -type f -perm /6000
/root/work/run.sh

Eski kaynaklarda aynı yerde -perm +6000 yazar. Olduğu gibi çalıştırılınca [invalid mode] hatasıyla bitti.

find /root/work -type f -perm +6000
find: invalid mode '+6000'

+ biçimi findutils 4.5.12 ile kaldırıldığı için (man sayfasına göre) / yazılır. Test için verilen SUID, chmod u-s ile kaldırıldı.

-user sahip adına göre süzer. Test dosyalarının hepsi root sahipliğinde olduğundan -user root tek başına hiçbir şeyi süzmez; -name ile .log dosyaları seçilince yalnızca app.log çıktı.

find /root/work -type f -user root -name '*.log'
/root/work/logs/app.log

-nouser, sahip UID değerine karşılık gelen hesabı olmayan dosyaları bulur. Hesap silindikten sonra sunucuda kalan dosyaları denetlerken kullanılır; guide.txt sahibi var olmayan UID 1500 yapıldıktan sonra guide.txt çıktı.

chown 1500:1500 /root/work/docs/guide.txt
find /root/work -nouser
/root/work/docs/guide.txt

-nogroup aynı denetimi sahip grup için yapar ve grubu da 1500 yapılan guide.txt çıktı. Testten sonra chown root:root ile geri aldık.

Koşullar arasına -o konursa ikisinden biri yeterlidir. -type f gibi başka bir koşulla birlikte kullanırken -o ile bağlanan koşulları parantez içine alırsınız. Kabuğun önce yorumlamaması için parantezlerin önüne ters eğik çizgi koyar, parantez ile koşul arasında boşluk bırakırsınız.

find /root/work -type f \( -name '*.log' -o -name '*.tmp' \)
/root/work/docs/old.tmp
/root/work/logs/app.log
/root/work/logs/cache.tmp

! hemen arkasındaki koşulu tersine çevirir. .txt olmayan dosyalar arandığında beş dosya çıktı.

find /root/work -type f ! -name '*.txt'
/root/work/docs/old.tmp
/root/work/logs/app.log
/root/work/logs/cache.tmp
/root/work/README.md
/root/work/run.sh

5️⃣ find -exec kullanımı

  • ↪️ {} \; ile {} + farkı, toplu izin değiştirme ve grep ile birlikte kullanım

-exec, bulunan her dosya için arkasına yazılan komutu çalıştırır ve {} yerine bulunan yol girer. Komut sonundaki ; karakteri, kabuk önce komut ayırıcısı olarak okumasın diye \; olarak yazılır.

find /root/work -name '*.log' -exec ls -l {} \;
-rw-r--r-- 1 root root 2097152 Oct  5 14:10 /root/work/logs/app.log

Sonu \; yerine + ile bitirirseniz bulunan yollar toplanır ve komut yalnızca bir kez çalışır. echo ile karşılaştırınca \; beş yolu beş satırda, + tek satırda yazdırdı.

find /root/work -name '*.txt' -exec echo {} \;
/root/work/docs/readme.txt
/root/work/docs/guide.txt
/root/work/report.txt
/root/work/my notes.txt
/root/work/empty.txt
find /root/work -name '*.txt' -exec echo {} +
/root/work/docs/readme.txt /root/work/docs/guide.txt /root/work/report.txt /root/work/my notes.txt /root/work/empty.txt

ls gibi birden çok yol alan komutları + ile gruplayarak çalıştırma sayısını azaltırsınız. 1k üzerindeki üç dosyanın boyutunu tek bir ls -lh ile gördük.

find /root/work -type f -size +1k -exec ls -lh {} +
-rw-r--r-- 1 root root 4.9K Oct  5 14:10 /root/work/docs/guide.txt
-rw-r--r-- 1 root root 2.0M Oct  5 14:10 /root/work/logs/app.log
-rw-r--r-- 1 root root 1.2K Oct  5 14:10 /root/work/report.txt

Web klasörünün izinlerini dosyalar için 644, klasörler için 755 olarak toplu düzenlerken de -exec kullanılır. Çalıştırmadan önce değeri farklı dosyaları aradığımızda run.sh ve my notes.txt çıktı.

find /root/work -type f ! -perm 644
/root/work/run.sh
/root/work/my notes.txt

Dosya ve klasörlerin izinleri farklı olduğundan -type f ve -type d ayrı çalıştırılır. chmod da birden çok yol aldığı için sonu + ile bitirdik.

find /root/work -type f -exec chmod 644 {} +
find /root/work -type d -exec chmod 755 {} +

Aynı koşulla yeniden arayınca hiçbir şey çıkmadı ve önceden 700 yapılan backup klasörü de 755 oldu.

Ancak run.sh de 644 oldu ve çalıştırınca [Permission denied] çıktı. Çalıştırılabilir dosyaların karıştığı klasörlerde bu dosyalara chmod +x ile çalıştırma iznini yeniden verirsiniz.

Yalnızca alt klasörlerdeki dosyaları değiştirmek için -mindepth 2 eklersiniz. 660 ile çalıştırınca yalnızca docs ve logs içindeki beş dosya değişti, kontrolden sonra 644 değerine geri aldık.

find /root/work -mindepth 2 -type f -exec chmod 660 {} +
find /root/work -type f -perm 660
/root/work/docs/readme.txt
/root/work/docs/guide.txt
/root/work/docs/old.tmp
/root/work/logs/app.log
/root/work/logs/cache.tmp

find ile grep birleştirilince ad yerine dosya içeriğine göre arama yapılır. Web kabuğu denetimi durumu oluşturmak için ayrı /root/site klasöründe dört PHP dosyası oluşturduk ve upload klasöründeki html-cache.php ile photo.php dosyalarına [base64_decode] metnini koyduk.

find /root/site -type f
/root/site/lib/func.php
/root/site/upload/html-cache.php
/root/site/upload/photo.php
/root/site/index.php

Web kabuğunun adını biliyorsanız -name ile bulursunuz. Yalnızca yükleme klasörüne kadar inmek için -maxdepth 2 eklenince yalnızca html-cache.php çıktı.

find /root/site -maxdepth 2 -type f -name 'html*.php'
/root/site/upload/html-cache.php

Adı sıradan bir adla değiştirilen photo.php burada çıkmadı. -exec ile grep -l çalıştırılınca yalnızca metni içeren dosyaların yolu yazdırılır ve iki dosya da çıktı.

find /root/site -name '*.php' -exec grep -l 'base64_decode' {} +
/root/site/upload/html-cache.php
/root/site/upload/photo.php

[base64_decode], WordPress çekirdek dosyalarında da bulunan bir işlevdir; bu yüzden bulunan dosyaları açıp içeriğini kontrol ettikten sonra silersiniz.

-print0, yollar arasına satır sonu yerine null karakteri koyar. Null karakteri ekranda görünmediğinden yollar tek satırda bitişik çıktı.

find /root/work -name '*.txt' -print0
/root/work/docs/readme.txt/root/work/docs/guide.txt/root/work/report.txt/root/work/my notes.txt/root/work/empty.txt

my notes.txt gibi boşluklu adları da kesilmeden başka bir komuta verirken -print0 çıktısı xargs -0 ile eşleştirilerek kullanılır (man sayfasına göre).

6️⃣ find ile dosya silme ve seçenekler

  • ↪️ -delete ve -exec rm

Silmeden önce aynı koşulları silmeden çalıştırıp silinecek dosyaların listesini gözle kontrol edersiniz.

find /root/work -name '*.tmp'
/root/work/docs/old.tmp
/root/work/logs/cache.tmp

-exec rm {} \;, bulunan her dosya için rm çalıştırır. Yalnızca logs klasöründe çalıştırınca cache.tmp silindi ve yalnızca app.log kaldı.

find /root/work/logs -name '*.tmp' -exec rm {} \;
ls /root/work/logs
app.log

-delete, rm çalıştırmadan find komutunun doğrudan silmesini sağlar. Çalıştırınca hiçbir şey yazdırmadı ve aynı koşulla yeniden arayınca .tmp dosyası kalmamıştı.

find /root/work -name '*.tmp' -delete
find /root/work -name '*.tmp'

-delete mutlaka koşullardan sonra yazılır. find komut satırını baştan tek bir ifade olarak hesapladığından, -delete en başa yazılırsa koşullara bakmadan başlangıç yolunun altındaki her şeyi silmeye çalışır (man sayfasına göre).

🔲 find komutu seçenekleri

📌 Başlıca seçenekler: bu yazıda çalıştırılan sonuçlar

SeçenekGörevBu yazıdaki sonuç
-nameAdı desene uyanları bulur (büyük küçük harfe duyarlı)'*.txt' ile beş dosya, 'readme*' ile yalnızca docs/readme.txt çıkar
-inameAdları büyük küçük harf ayırmadan karşılaştırır'readme*' ile docs/readme.txt ve README.md birlikte çıkar
-type f, -type dYalnızca normal dosyaları (f) veya klasörleri (d) bırakır-type d ile başlangıç yolu dahil dört klasör, -type f ile on dosya çıkar
-maxdepthBaşlangıç yolundan yalnızca N düzey aşağı iner-maxdepth 1 ile yalnızca /root/work hemen altındaki beş dosya kalır
-mindepthBaşlangıç yolundan N düzey yukarısını atlar-mindepth 2 ile yalnızca alt klasörlerdeki beş dosya çıkar
-sizeBoyuta göre bulur (+ büyük, - küçük, birimler c, k, M, G)-size +1k ile üç dosya, -size -1k ile yalnızca empty.txt çıkar
-mtimeİçerik değiştikten sonra geçen süreyi 24 saatlik birimlerle karşılaştırır-mtime -1 ile beş dosya, -mtime +7 ile iki .tmp dosyası çıkar
-mminDeğişiklikten sonra geçen süreyi dakika olarak karşılaştırır-mmin -60 ile -mtime -1 ile aynı beş dosya çıkar
-ctimeİzin ve ad gibi dosya bilgilerinin değiştiği zamana kadar 24 saatlik birimlerle karşılaştırır-ctime -1 ile on test dosyasının hepsi çıkar
-newerBaşvuru dosyasından sonra değiştirilenleri bulur3 gün önceye ayarlanan README.md başvuru alınınca beş dosya çıkar
-emptyBoyutu 0 olan dosyaları ve boş klasörleri bulurBoş backup klasörü ve empty.txt çıkar
-permİzne göre bulur (yalnızca sayı tam o değer, önünde - yazılan izinlerin hepsi, / biri bile)-perm 644 ile sekiz dosya, -perm -u+x ile run.sh, SUID sonrası -perm /6000 ile run.sh çıkar
-userSahip adına göre süzer-name '*.log' ile birlikte app.log çıkar, var olmayan hesap hatayla biter
-nouserSahip UID değerine karşılık gelen hesabı olmayanları bulurUID değeri 1500 yapılan guide.txt çıkar
-nogroupSahip grup GID değerine karşılık gelen grubu olmayanları bulurGID değeri 1500 yapılan guide.txt çıkar
-oİkisinden birine uyanı bırakır (başka koşullarla birlikte parantez içinde).log ve .tmp gruplanınca üç dosya çıkar
!Hemen arkasındaki koşulu tersine çevirir.txt olmayan beş dosya çıkar
-execBulunan her dosya için arkasına yazılan komutu çalıştırır ({} yerine yol)Sonu + ile bitince tek echo ile beş yol tek satırda çıkar
-print0Yollar arasına satır sonu yerine null karakteri koyarNull karakteri görünmediğinden yollar tek satırda bitişik çıkar
-deleteBulunan dosyaları find doğrudan siler (koşullardan sonra yazılır)Hiçbir şey yazdırmadı, yeniden aranınca .tmp dosyası yok

📎 Diğer seçenekler: resmî kılavuza göre

SeçenekGörev
-LSembolik bağlantıları izler ve hedef dosyanın bilgisini kullanır
-pathAd yerine tüm yolu kabuk deseniyle karşılaştırır
-regexTüm yolu düzenli ifadeyle karşılaştırır
-iregex-regex gibi karşılaştırır, büyük küçük harf ayırmaz
-atimeSon erişimden sonra geçen süreyi 24 saatlik birimlerle karşılaştırır
-cnewerDurumu başvuru dosyasının değiştirilme zamanından sonra değişenleri bulur
-groupSahip grup adına göre süzer
-xdevBaşka dosya sistemlerindeki klasörlere inmez
-daystartZaman koşullarını 24 saat önce yerine bugün 00:00'dan hesaplar
-pruneKlasörse altına inmez
-quitHemen bitirir (-print -quit yalnızca ilk sonucu yazdırır)
-printfÇıktı biçimini kendiniz belirleyerek yazdırır
-lsBulunan dosyaları ls -dils biçiminde yazdırır
-fprintBulunan yolları ekran yerine belirtilen dosyaya kaydeder
-ok-exec gibi çalışır ama önce sorar
-execdir-exec gibi çalışır ama komutu bulunan dosyanın klasöründe çalıştırır

🔲 find komutu simülatörü

Aşağıdaki simülatör aynı test klasörünü içeren sanal bir sunucudur; -name, -type, -size, -mtime, -perm gibi koşulları ve -exec, -delete seçeneklerini kendiniz çalıştırabilirsiniz.

find komutu simülatörüfindutils 4.8
[root@server work]#
Yalnızca tarayıcıda çalışan sanal bir sunucudur; sol sütunda /root/work içindeki her dosyanın boyutu, değiştirilme zamanı ve izni görünür. -delete veya -exec rm ile silinen dosyalar [Baştan başla] ile geri getirilebilir.

7️⃣ find komutu hataları

  • ↪️ paths must precede expression ve Permission denied

Deseni tırnaksız yazarsanız kabuk Joker karakterler kurallarına göre deseni önce geçerli klasördeki dosya adlarına açar. docs klasörüne geçip *.txt tırnaksız yazılınca kabuk bunu guide.txt ve readme.txt adlarına çevirip verdi ve aşağıdaki hata çıktı.

cd /root/work/docs
find /root/work -name *.txt
find: paths must precede expression: `readme.txt'
find: possible unquoted pattern after predicate `-name'?

Çıkış kodu 1 idi.

-exec sonuna \; veya + yazılmayınca [missing argument to `-exec’] çıktı.

find /root/work -name '*.log' -exec ls -l {}
find: missing argument to `-exec'

Var olmayan başlangıç yolu [No such file or directory] verir ve çıkış kodu 1 ile biter.

find /nonexistent-dir -name x
find: '/nonexistent-dir': No such file or directory

-user için var olmayan hesap adı veya -type için f, d gibi tanımlı harfler dışında bir değer yazılırsa arama başlamadan hemen hatayla biter.

find /root/work -user nosuchuser
find: 'nosuchuser' is not the name of a known user
find /root/work -type x
find: Unknown argument to -type: x

Debian 12 sunucusundaki normal hesapla test klasörü içindeki lock klasörünün iznini 000 yapıp test klasöründe arama yaptık. lock içi okunamadığından [Permission denied] çıktı ve çıkış kodu 1 oldu.

find ~/findtest
/home/user/findtest
/home/user/findtest/report.txt
/home/user/findtest/lock
find: '/home/user/findtest/lock': Permission denied
/home/user/findtest/docs
/home/user/findtest/docs/readme.txt

Yalnızca hata satırlarını gizlemek için 2>/dev/null eklersiniz. Hata iletisi kayboldu ama çıkış kodu yine 1 kaldı.

find ~/findtest -name '*.txt' 2>/dev/null
/home/user/findtest/report.txt
/home/user/findtest/docs/readme.txt

🔢 SSS & önerilen içerikler

find her çalıştırmada başlangıç yolunun altında kendisi dolaşarak arar. locate ise updatedb ile önceden oluşturulmuş veritabanında ad arar; bu yüzden veritabanı son güncellendikten sonra oluşturulan dosyalar çıkmaz (man sayfasına göre).

-mtime içeriğin değiştirildiği zamana, -ctime ise izin ve ad gibi dosya bilgilerinin değiştiği zamana da bakar. touch -d ile değiştirilme zamanı 3 gün önceye ayarlanan README.md dosyasında da bu ayar bilgi değişikliği olarak kaldığından -ctime -1 ile on test dosyasının hepsi çıktı.

ℹ️ Satış ortaklığı bildirimi
Bu sitenin içeriklerinde satış ortaklığı bağlantıları bulunur. Bir ziyaretçi bu bağlantılar üzerinden ürün veya hizmet satın alırsa bu site satıcıdan komisyon alır. Bu süreçte alıcının ödediği tutar (kampanya indirimlerinde tutar düşer↓) artmaz. Yayımlanan fiyat, indirim ve stok bilgileri yazının yazıldığı zamana aittir ve gerçek durumdan farklı olabilir; bu yüzden satın almadan önce son bilgiyi satıcıdan kontrol etmenizi rica ederiz. Ürünler kendi ölçütlerimize göre seçilir ve değerlendirilir; komisyon alınıp alınmaması tanıtım sırasını veya değerlendirme içeriğini etkilemez.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İnsan olduğunuzu kanıtlayın: 4   +   5   =