Aşağıdaki cevap, önceki cevapları ve bu sorudaki bilgiyi burada araştırarak keşfedildi ve onlarsız bulunamadı. Onlara cudos.
Linuxmint sistemimde (ve çoğu ubuntu tabanlı sistemler ve muhtemelen debian tabanlı sistemler olduğunu varsayardım) otomatik olarak tmpf'lerin takıldığı bir kullanıcı var. /run/user/1000/
df -T
Kontrol etmek için kullanın .
11:41:11 jesse @ Limbo: ~ $ df -T
Dosya Sistemi Türü 1K-blokları Kullanılmış Mevcut Kullanım Yüzdesi
udev devtmpfs 15904812 4 15904808 1% / dev
tmpfs tmpfs 3184120 1700 3182420 1% / çalışma
/ dev / sdb2 ext4 14248880 11464788 2037240 85% /
none tmpfs 4 0 4 0% / sys / fs / cgroup
none tmpfs 5120 0 5120 0% / run / lock
none tmpfs 15920584 848 15919736 1% / run / shm
none tmpfs 102400 12 102388 1% / run / kullanıcı
/ dev / sdb3 ext4 100861352 90755700 4959136% 95 / mnt / veri
Altında /run/user/
sistemdeki her normal kullanıcı için bir dizin var.
12:07:35 jesse@Limbo:~$ ls -l /run/user
total 0
drwx------ 2 root root 40 Aug 7 09:50 0
drwx------ 8 jesse jesse 180 Aug 7 11:38 1000
Bu dizinler ilgili kullanıcı adlarından sonra adlandırılır. Bu komutun detaylarını id -u
görmek man id
için kullanıcı kimliğini görebiliriz .
12:07:43 jesse@Limbo:~$ ls -l /run/user/$(id -u)
total 0
drwx------ 2 jesse jesse 60 Aug 7 09:50 dconf
dr-x------ 2 jesse jesse 0 Aug 7 09:50 gvfs
drwx------ 2 jesse jesse 80 Aug 7 09:50 pulse
lrwxrwxrwx 1 root root 17 Aug 7 09:50 X11-display -> /tmp/.X11-unix/X0
Bu temp mktemp
komutunu --tmpdir
, bu tempfilesystem içerisinde temp dosyaları ve dizinleri oluşturma seçeneği ile kullanabiliriz, böylece RAM'de tempfiles oluşturabiliriz.
Burada verilen tavsiyelere göre, önce bir temp dizini yarattım, sonra buradaki temp dosyalarını oluşturdum:
mydir=$(mktemp -dt "$(basename $0).XXXXXXXX" --tmpdir=/run/user/$(id -u))
geçici bir dizin oluşturmak için /run/user/1000/bash.w42BYxbG/
daha sonra
myfile=$(mktemp -t "$(basename $0).XXXXXXXX" --tmpdir=$mydir)
İçinde bir tempfile oluşturmak için.
Yapmam gereken tek şey bu dosyayı temizlemeyi kolaylaştırıyor rm -r $mydir
.
Varsayılan olarak, tüm bu dosyalar yalnızca onları oluşturan kullanıcı tarafından aittir ve okunabilir.
Not: $(basename $0)
Komutun kısmı, mktemp'yi çalıştıran komut dosyası / işlemin adını çıkarır. Eğer bir betiğim varsa,
/home/jesse/scripts/myScript.sh
o zaman bu betiği tarafından çalıştırıldığında $(basename $0)
döner
myScript.sh
. Böylece yukarıdaki komutlar /run/user/1000/myScript.sh.w42BYxbG/
ve /run/user/1000/myScript.sh.w42BYxbG/myScript.sh.BCzSmq06
sırasıyla oluşturacaktı .