Linux find komutu: -name, -type, -size, -mtime seçenekleri ve -delete
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ı
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ı.
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.txtfind 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.txtfind /root/work -iname 'readme*'/root/work/docs/readme.txt
/root/work/README.mdfind, 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
-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/backupBaş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.txtTersine -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.tmpman 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 -l4-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 -l4-mindepth 2 ile yalnızca alt klasörlerdeki dosyaları saymak 5 verdi.
find /root/work -mindepth 2 -type f | wc -l53️⃣ find komutunda boyut ve zaman koşulları
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).
| Birim | Boyut | Evet |
|---|---|---|
| c | 1 bayt | -size +500c |
| k | 1,024 bayt | -size +1k |
| M | 1,048,576 bayt | -size +1M |
| G | 1,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.txt1k ü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.txtZaman 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.txt4️⃣ find -perm ve -user koşulları
-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.txtModun ö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.shModun ö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.shfind /root/work -type f -perm /6000/root/work/run.shEski 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 +6000find: 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.txtfind /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.sh5️⃣ find -exec 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.logSonu \; 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.txtfind /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.txtls 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.txtWeb 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.txtDosya 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.tmpfind 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.phpWeb 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.phpAdı 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.txtmy 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
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/logsapp.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' -deletefind /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çenek | Görev | Bu yazıdaki sonuç | |
|---|---|---|---|
| -name | Adı desene uyanları bulur (büyük küçük harfe duyarlı) | '*.txt' ile beş dosya, 'readme*' ile yalnızca docs/readme.txt çıkar | |
| -iname | Adları 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 d | Yalnı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 | |
| -maxdepth | Başlangıç yolundan yalnızca N düzey aşağı iner | -maxdepth 1 ile yalnızca /root/work hemen altındaki beş dosya kalır | |
| -mindepth | Başlangıç yolundan N düzey yukarısını atlar | -mindepth 2 ile yalnızca alt klasörlerdeki beş dosya çıkar | |
| -size | Boyuta 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 | |
| -mmin | Değ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 | |
| -newer | Başvuru dosyasından sonra değiştirilenleri bulur | 3 gün önceye ayarlanan README.md başvuru alınınca beş dosya çıkar | |
| -empty | Boyutu 0 olan dosyaları ve boş klasörleri bulur | Boş 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 | |
| -user | Sahip adına göre süzer | -name '*.log' ile birlikte app.log çıkar, var olmayan hesap hatayla biter | |
| -nouser | Sahip UID değerine karşılık gelen hesabı olmayanları bulur | UID değeri 1500 yapılan guide.txt çıkar | |
| -nogroup | Sahip grup GID değerine karşılık gelen grubu olmayanları bulur | GID 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 | |
| -exec | Bulunan 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 | |
| -print0 | Yollar arasına satır sonu yerine null karakteri koyar | Null karakteri görünmediğinden yollar tek satırda bitişik çıkar | |
| -delete | Bulunan 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çenek | Görev | |
|---|---|---|
| -L | Sembolik bağlantıları izler ve hedef dosyanın bilgisini kullanır | |
| -path | Ad yerine tüm yolu kabuk deseniyle karşılaştırır | |
| -regex | Tü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 | |
| -atime | Son erişimden sonra geçen süreyi 24 saatlik birimlerle karşılaştırır | |
| -cnewer | Durumu başvuru dosyasının değiştirilme zamanından sonra değişenleri bulur | |
| -group | Sahip grup adına göre süzer | |
| -xdev | Başka dosya sistemlerindeki klasörlere inmez | |
| -daystart | Zaman koşullarını 24 saat önce yerine bugün 00:00'dan hesaplar | |
| -prune | Klasörse altına inmez | |
| -quit | Hemen bitirir (-print -quit yalnızca ilk sonucu yazdırır) | |
| -printf | Çıktı biçimini kendiniz belirleyerek yazdırır | |
| -ls | Bulunan dosyaları ls -dils biçiminde yazdırır | |
| -fprint | Bulunan 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.
7️⃣ find komutu hataları
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/docsfind /root/work -name *.txtfind: 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 xfind: '/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 nosuchuserfind: 'nosuchuser' is not the name of a known userfind /root/work -type xfind: Unknown argument to -type: xDebian 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.txtYalnı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
İçerik arama
Linux grep komutu
Dosya içinde metin bulup o satırı yazdıran grep komutunu ve seçeneklerini anlatan yazı.
Silme
Linux rm komutu: rm -rf seçenekleri ve onay almadan silme
Dosya ve klasör silerken kullanılan rm komutunun -r, -f seçeneklerini ve onay sorularını anlatan yazı.
Disk alanı
du komutu: Dosyaların disk alanını kontrol etme
Klasör ve dosyaların kapladığı disk alanını du komutuyla toplamayı anlatan yazı.
ℹ️ 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.