Truncate nedir?
Linux'ta 'truncate' komutu, bir dosyanın boyutunu değiştirmek için kullanılır. En önemli özelliği, dosyayı silmeden içeriğini boşaltabilmesidir. Yani dosya yerinde kalır ama içi boşalır.
Bu özellikle log dosyaları veya çalışan uygulamaların kullandığı dosyalarla uğraşırken hayat kurtarıcı olabilir. Dosyayı silsem, uygulama hata verebilir. Ama boşaltırsam, hem yer açarım hem de yapı bozulmaz.
Temel kullanımı
Temel kullanımı oldukça basit:
truncate -s BOYUT DOSYA_ADI
Burada -s
parametresi "size" yani boyut anlamına gelir. Boyut için çeşitli birimler kullanılabilir.
Pratik örnekler
En yaygın kullanım, bir dosyayı tamamen boşaltmaktır:
truncate -s 0 buyuk_log_dosyasi.log
Bu komut, dosyanın içeriğini sıfırlar ama dosya hala vardır. Uygulama çalışmaya devam eder ve yeni loglar bu dosyaya yazılır.
Belirli bir boyuta da ayarlayabilirsiniz:
truncate -s 1M veritabani.dat
Bu, dosyayı 1 megabayta keser.
Mevcut boyuta göre ayarlama da yapabilirsiniz:
truncate -s +500K dosya.txt # 500 KB ekle
truncate -s -2M dosya.txt # 2 MB çıkar
Ne zaman kullanmalı?
Şu durumlarda truncate kullanmak mantıklıdır:
- Log dosyaları biriktiğinde
- Docker konteynerlerinde silme yetkisi olmadığında
- Çalışan bir sistemi bozmadan yer açmak gerektiğinde
- Dosya yapısını korumak ama içeriği temizlemek istediğinizde
Geçen haftaki sorunumda, konteyner içindeki 8GB'lık log dosyasını truncate -s 0
ile anında temizledim ve sistem çalışmaya devam etti.
Bu basit ama güçlü komut, sistem yöneticisinin alet çantasında bulunması gereken araçlardan biridir.