A resposta a seguir foi descoberta ao investigar as respostas anteriores e as informações nesta pergunta aqui e não teriam sido encontradas sem elas. Cudos para eles.
No meu sistema linuxmint (e eu assumiria a maioria dos sistemas baseados em ubuntu e possivelmente também em debian), existe um usuário de propriedade tmpfs montado automaticamente no /run/user/1000/
Use df -T
para verificar.
11:41:11 jesse @ Limbo: ~ $ df -T
Blocos de tipo 1K do sistema de arquivos Usado Disponível Disponível% Montado em
udev devtmpfs 15904812 4 15904808 1% / dev
tmpfs tmpfs 3184120 1700 3182420 1% / corrida
/ dev / sdb2 ext4 14248880 11464788 2037240 85% /
nenhum tmpfs 4 0 4 0% / sys / fs / cgroup
nenhum tmpfs 5120 0 5120 0% / execução / bloqueio
nenhum tmpfs 15920584 848 15919736 1% / execução / shm
nenhum tmpfs 102400 12 102388 1% / execução / usuário
/ dev / sdb3 ext4 100861352 90755700 4959136 95% / mnt / data
Abaixo, /run/user/
há um diretório para cada usuário normal no sistema
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
Esses diretórios são nomeados após os respectivos IDs de usuário. Podemos obter o ID do usuário para id -u
ver man id
detalhes sobre este comando.
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
Em seguida, podemos usar o mktemp
comando com a --tmpdir
opção de criar arquivos e diretórios temporários neste sistema de arquivos temporários, criando assim arquivos temporários na RAM.
Seguindo as orientações fornecidas aqui , primeiro criei um diretório temporário e depois criei meus arquivos temporários:
mydir=$(mktemp -dt "$(basename $0).XXXXXXXX" --tmpdir=/run/user/$(id -u))
para criar um diretório temporário /run/user/1000/bash.w42BYxbG/
, em seguida,
myfile=$(mktemp -t "$(basename $0).XXXXXXXX" --tmpdir=$mydir)
para criar um arquivo temporário nele.
Isso facilita a limpeza desses arquivos, pois tudo o que preciso fazer é rm -r $mydir
.
Por padrão, todos esses arquivos são de propriedade e legíveis apenas pelo usuário que os criou.
Nota: A $(basename $0)
parte do comando extrai o nome do script / processo que executou o mktemp. Se eu tiver um script
/home/jesse/scripts/myScript.sh
, $(basename $0)
retornará
myScript.sh
quando executado por este script. Assim, os comandos acima criariam /run/user/1000/myScript.sh.w42BYxbG/
e /run/user/1000/myScript.sh.w42BYxbG/myScript.sh.BCzSmq06
respectivamente.