Pertimbangan untuk menggunakan direktori `/ tmp` pada sistem multi-pengguna

3

Karena saya telah belajar lebih banyak tentang Ubuntu dan pemrograman bash saya telah menyimpan variabel dalam /tmp. Misalnya panggilan di antara skrip bash yang sama saya ingin merekam keadaan sebelumnya.

Pada sistem pengguna tunggal saya saat ini, tidak ada bahaya konflik dalam /tmpdirektori. Namun saya ingin kode saya menjadi bukti masa depan dan bertanya-tanya apakah saya harus terbiasa menggunakan direktori yang disebut ~/tmp?

Mungkin itu harus ~/.tmpdan disembunyikan. Mungkin seharusnya ~/temptidak menjadi bingung dengan /tmpdirektori konvensional .

Ada ide / saran yang dihargai. Terima kasih.

WinEunuuchs2Unix
sumber
Saya lebih suka menggunakan /tmptetapi memberi nama file dengan beberapa keacakan melekat pada nama file. head /dev/urandom | tr -dc A-Za-z0-9 | head -c 13 ; echo ''Saya yakin ini memiliki set peringatan sendiri.
Saya menggunakan nama tetap yang dikodekan dalam skrip. yaitu /tmp/lock-screen-timer-remainingyang berisi satu baris dengan "30 menit", "29 menit" ...
WinEunuuchs2Unix
Minimal, Anda bisa menggunakan $$variabel dalam bashskrip sebagai bagian dari file, karena ID proses Anda harus unik dalam sistem yang sedang berjalan. Atau buat direktori pengguna di /tmp. Keuntungan dari /tmpdirektori adalah bahwa itu dikosongkan saat reboot ketika dikonfigurasi dengan benar.
ridgy
@ridgy ID proses akan berubah setiap kali skrip dipanggil. Skrip lain yang membaca status memerlukan nama file statis untuk dibuka. Saya suka ide Anda untuk membuat direktori pengguna di dalam /tmptahukah Anda apakah itu praktik umum?
WinEunuuchs2Unix
Dengan asumsi kita berbicara tentang beberapa Ubuntu saat ini, lihat saja / tmp ( ls -l /tmp), untuk melihat aplikasi apa yang dilakukan (semua direktori yang dimiliki oleh Anda dibuat untuk Anda, dan beberapa akan memiliki nama pengguna Anda dalam nama direktori ...)
ridgy

Jawaban:

1

Umumnya jika Anda ingin menyimpan status untuk setiap pengguna, cara termudah adalah dengan hanya membuat direktori khusus untuk aplikasi di direktori home pengguna:

CFGDIR="${HOME}/.mycoolapp"
mkdir -p ${CFGDIR}
# read / write files in ${CFGDIR} here..

Jika Anda hanya ingin penyimpanan sementara untuk satu contoh skrip, pendekatan yang baik adalah dengan menggunakan mktemp. Sebagai contoh:

TMPDIR="$(mktemp -d)"
# read / write files in ${TMPDIR} here..
rm -rf ${TMPDIR}
d99kris
sumber
Selamat Datang di Tanya Ubuntu. Selamat atas jawaban pertama Anda. Terkemuka jawaban pertama atas pertanyaan yang berumur dua setengah bulan :)
WinEunuuchs2Unix
Terima kasih @ WinEunuuchs2Unix - ya saya juga terkejut melihat tidak ada jawaban untuk yang satu ini.
d99kris