Yalnızca komut dosyanız veya uygulamanız çalıştığı sürece devam eden bazı geçici dosyalar yazmanız gerekiyorsa, TMPDIRortam değişkeni tarafından belirtilen dizini kullanın veya bu değişken tanımlanmamışsa /tmp,.
/tmpbazı sistemlerde önyükleme zamanında temizlenir (bazen RAM'de bile, örneğin Solaris'te ve bazı Linux kurulumlarında varsayılan olarak), bu nedenle bir güç kesintisi veya yeniden başlatmadan kurtulması gereken dosyalar için kullanılamaz. /var/tmpyeniden başlatma işleminden sağ çıkması gereken, ancak sistem yöneticisi tarafından zaman zaman temizlenebilen dosyalar için kullanılabilir. Uygulamanızın dosyaları kalıcı olarak kaydetmesi gerekiyorsa, bunları kullanıcının ana dizininde ( ~/.programmingnoobsappveya içinde ~/.cache/programmingnoobsapp) veya altında /var/lib/programmingnoobsappveya altında bir yere yazın /var/cache/programmingnoobsapp.
/tmpTüm kullanıcılar arasında paylaşıldığını unutmayın , bu nedenle orada bir dosya oluştururken önlem almanız gerekir. Henüz mevcut olmayan bir dosya adı seçmeniz ve başka bir işlemin önünüzde dosyayı farklı izinlerle oluşturduğu bir yarış durumuna izin vermemeye dikkat etmeniz gerekir; farklı bir kullanıcı olarak çalışıyorsa, işleminizin verilerine erişebilir ve bunları değiştirebilir). Veya mktempiçinde bir dosya oluşturmak için komutu kullanın . Varsayılan olarak, bir dosya oluşturur , ya da eğer genellikle doğru yerde olan düzdür. Birden fazla geçici dosya kullanmanız gerekiyorsa veya tek bir dosyaya ihtiyacınız olsa bile, tüm geçici dosyalarınız için bir dizin oluşturmanızı öneririz./tmp/var/tmpmktemp$TMPDIR/tmpTMPDIRmktemp -d ve betiğinizin sonunda bunu kaldırabilirsiniz.
#!/bin/sh
tmp_root=
trap 'rm -rf "$tmp_root"' EXIT INT TERM HUP
tmp_root=$(mktemp -d)
tmpfile1=$tmp_root/file1
tmpfile2=$tmp_root/file2
…