Die folgende Antwort wurde durch Untersuchen der vorherigen Antworten und der Informationen in dieser Frage hier entdeckt und wäre ohne sie nicht gefunden worden. Ein dickes Lob an sie.
Auf meinem LinuxMint-System (und ich würde davon ausgehen, dass die meisten Ubuntu-basierten Systeme und möglicherweise auch Debian-basierte Systeme) ist ein benutzereigener tmpfs installiert, der automatisch darauf installiert wird /run/user/1000/
Verwenden Sie df -T
zu überprüfen.
11:41:11 jesse @ limbo: ~ $ df -T
Dateisystemtyp 1K-Blöcke Verwendet Verfügbar Verwendung% Eingehängt an
udev devtmpfs 15904812 4 15904808 1% / dev
tmpfs tmpfs 3184120 1700 3182420 1% / Durchlauf
/ dev / sdb2 ext4 14248880 11464788 2037240 85% /
keine tmpfs 4 0 4 0% / sys / fs / cgroup
keine tmpfs 5120 0 5120 0% / run / lock
keine tmpfs 15920584 848 15919736 1% / run / shm
keine tmpfs 102400 12 102388 1% / run / user
/ dev / sdb3 ext4 100861352 90755700 4959136 95% / mnt / data
Darunter /run/user/
befindet sich ein Verzeichnis für jeden normalen Benutzer im System
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
Diese Verzeichnisse sind nach den IDs ihrer jeweiligen Benutzer benannt. Wir können die Benutzer - ID mit bekommen id -u
siehe man id
für weitere Einzelheiten zu diesem Befehl.
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
Wir können dann den mktemp
Befehl mit der --tmpdir
Option verwenden, um temporäre Dateien und Verzeichnisse in diesem tempfilesystem zu erstellen und so tempfiles im RAM zu erstellen.
Gemäß den hier gegebenen Hinweisen erstelle ich ein temporäres Verzeichnis und erstelle dann meine temporären Dateien darin:
mydir=$(mktemp -dt "$(basename $0).XXXXXXXX" --tmpdir=/run/user/$(id -u))
erstellen ein temporäres Verzeichnis /run/user/1000/bash.w42BYxbG/
dann
myfile=$(mktemp -t "$(basename $0).XXXXXXXX" --tmpdir=$mydir)
darin ein tempfile erstellen.
Das macht das Aufräumen dieser Datei einfach, da ich nur noch tun muss rm -r $mydir
.
Standardmäßig gehören alle diese Dateien und können nur von dem Benutzer gelesen werden, der sie erstellt hat.
Anmerkung: Der $(basename $0)
Teil des Befehls extrahiert den Namen des Skripts / Prozesses, der mktemp ausgeführt hat. Wenn ich ein Skript habe,
/home/jesse/scripts/myScript.sh
wird es $(basename $0)
zurückgegeben,
myScript.sh
wenn es von diesem Skript ausgeführt wird. So sind die oben genannten Befehle schaffen würde /run/user/1000/myScript.sh.w42BYxbG/
und /run/user/1000/myScript.sh.w42BYxbG/myScript.sh.BCzSmq06
jeweils.