Jika Anda perlu menulis beberapa file sementara yang hanya berlangsung selama skrip atau aplikasi Anda berjalan, gunakan direktori yang ditunjukkan oleh TMPDIRvariabel lingkungan, atau jika variabel itu tidak didefinisikan /tmp,.
/tmpdihapus saat boot pada beberapa sistem (kadang-kadang bahkan dalam RAM, misalnya secara default pada Solaris, dan pada beberapa instalasi Linux), sehingga tidak dapat digunakan untuk file yang harus selamat dari kegagalan daya atau reboot. /var/tmpdapat digunakan untuk file yang harus selamat dari reboot, tetapi itu dapat dibersihkan oleh administrator sistem dari waktu ke waktu. Jika aplikasi Anda perlu menyimpan file secara permanen, tulis di suatu tempat di direktori home pengguna (di ~/.programmingnoobsappatau ~/.cache/programmingnoobsapp) atau di bawah /var/lib/programmingnoobsappatau /var/cache/programmingnoobsapp.
Catatan yang /tmpdibagikan di antara semua pengguna, jadi Anda harus berhati-hati saat membuat file di sana. Anda perlu memilih nama file yang belum ada, dan Anda harus berhati-hati untuk tidak mengizinkan kondisi balapan di mana proses lain membuat file di depan Anda dengan izin yang berbeda, yang bisa menjadi lubang keamanan (jika proses lain berjalan sebagai pengguna yang berbeda, kemudian dapat mengakses dan memodifikasi data proses Anda). Gunakan mktempperintah untuk membuat file di /tmpatau /var/tmp. Secara default, mktempmembuat file di $TMPDIR, atau /tmpjika TMPDIRtidak disetel, yang biasanya merupakan tempat yang tepat. Jika Anda perlu menggunakan beberapa file sementara, atau bahkan jika Anda memerlukan satu file saja, saya sarankan membuat direktori untuk semua file sementara Anda denganmktemp -d dan menghapusnya di akhir skrip Anda.
#!/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
…