La réponse suivante a été découverte en examinant les réponses précédentes et les informations de cette question ici et n'aurait pas été trouvée sans elles. Cudos à eux.
Sur mon système linuxmint (et je suppose que la plupart des systèmes basés sur Ubuntu et éventuellement sur Debian aussi) il y a un tmpfs appartenant à l'utilisateur monté automatiquement sur /run/user/1000/
Utilisez df -T
pour vérifier.
11:41:11 jesse @ Limbo: ~ $ df -T
Type de système de fichiers Blocs 1K utilisés disponibles disponibles% montés sur
udev devtmpfs 15904812 4 15904808 1% / dev
tmpfs tmpfs 3184120 1700 3182420 1% / exécution
/ dev / sdb2 ext4 14248880 11464788 2037240 85% /
aucun tmpfs 4 0 4 0% / sys / fs / cgroup
aucun tmpfs 5120 0 5120 0% / run / lock
aucun tmpfs 15920584 848 15919736 1% / run / shm
aucun tmpfs 102400 12 102388 1% / exécution / utilisateur
/ dev / sdb3 ext4 100861352 90755700 4959136 95% / mnt / data
Sous /run/user/
il y a un répertoire pour chaque utilisateur normal du système
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
Ces répertoires sont nommés d'après les identifiants de leurs utilisateurs respectifs. Nous pouvons obtenir l'ID utilisateur avec id -u
voir man id
pour plus de détails sur cette commande.
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
Nous pouvons ensuite utiliser la mktemp
commande avec l' --tmpdir
option pour créer des fichiers et des répertoires temporaires dans ce système de fichiers temporaires, créant ainsi des fichiers temporaires dans la RAM.
En suivant les conseils donnés ici, je crée d'abord un répertoire temporaire, puis je crée mes fichiers temporaires en cela:
mydir=$(mktemp -dt "$(basename $0).XXXXXXXX" --tmpdir=/run/user/$(id -u))
pour créer un répertoire temporaire /run/user/1000/bash.w42BYxbG/
puis
myfile=$(mktemp -t "$(basename $0).XXXXXXXX" --tmpdir=$mydir)
pour y créer un fichier temporaire.
Cela facilite le nettoyage de ces fichiers car tout ce que j'ai à faire est rm -r $mydir
.
Par défaut, tous ces fichiers sont détenus et lisibles uniquement par l'utilisateur qui les a créés.
Remarque: La $(basename $0)
partie de la commande extrait le nom du script / processus qui a exécuté mktemp. Si j'ai un script,
/home/jesse/scripts/myScript.sh
il $(basename $0)
revient
myScript.sh
lorsqu'il est exécuté par ce script. Ainsi, les commandes ci-dessus créeraient /run/user/1000/myScript.sh.w42BYxbG/
et /run/user/1000/myScript.sh.w42BYxbG/myScript.sh.BCzSmq06
respectivement.