Poniższa odpowiedź została odkryta przez zbadanie poprzednich odpowiedzi i informacji zawartych w tym pytaniu tutaj i nie zostałaby znaleziona bez nich. Cudos do nich.
W moim systemie linuxmint (i zakładałbym, że większość systemów opartych na Ubuntu i prawdopodobnie również opartych na Debianie) istnieje tmpfs należący do użytkownika montowany automatycznie na /run/user/1000/
Użyj, df -T
aby sprawdzić.
11:41:11 jesse @ Limbo: ~ $ df -T
Typ systemu plików Użyte bloki 1K Dostępne Użyj% Zamontowane
udev devtmpfs 15904812 4 15904808 1% / dev
tmpfs tmpfs 3184120 1700 3182420 1% / run
/ dev / sbb2 ext4 14248880 11464788 2037240 85% /
brak tmpfs 4 0 4 0% / sys / fs / cgroup
brak tmpfs 5120 0 5120 0% / run / lock
brak tmpfs 15920584 848 15919736 1% / run / shm
brak tmpfs 102400 12 102388 1% / run / user
/ dev / sbb3 ext4 100861352 90755700 4959136 95% / mnt / data
Poniżej /run/user/
znajduje się katalog dla każdego normalnego użytkownika w systemie
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
Te katalogi są nazwane na podstawie identyfikatorów odpowiednich użytkowników. Możemy uzyskać identyfikator użytkownika za pomocą id -u
zobacz man id
szczegóły na temat tego polecenia.
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
Następnie możemy użyć mktemp
polecenia z --tmpdir
opcją tworzenia plików tymczasowych i katalogów w tym systemie plików tymczasowych, tworząc w ten sposób pliki tymczasowe w pamięci RAM.
Zgodnie z podanymi tutaj poradami najpierw tworzę katalog tymczasowy, a następnie tworzę w nim pliki tymczasowe:
mydir=$(mktemp -dt "$(basename $0).XXXXXXXX" --tmpdir=/run/user/$(id -u))
utworzyć katalog temp /run/user/1000/bash.w42BYxbG/
następnie
myfile=$(mktemp -t "$(basename $0).XXXXXXXX" --tmpdir=$mydir)
aby utworzyć w nim plik tymczasowy.
Ułatwia to czyszczenie tych plików, ponieważ wszystko, co muszę zrobić, to rm -r $mydir
.
Domyślnie wszystkie te pliki są własnością i są czytelne tylko dla użytkownika, który je utworzył.
Uwaga: $(basename $0)
Część polecenia wyodrębnia nazwę skryptu / procesu, który wykonał mktemp. Jeśli mam skrypt,
/home/jesse/scripts/myScript.sh
to $(basename $0)
wraca
myScript.sh
po wykonaniu przez ten skrypt. Zatem powyższe polecenia może stworzyć /run/user/1000/myScript.sh.w42BYxbG/
i /run/user/1000/myScript.sh.w42BYxbG/myScript.sh.BCzSmq06
odpowiednio.