Наступна відповідь була виявлена шляхом дослідження попередніх відповідей та інформації в цьому запитанні тут, і без них їх не було б знайдено. Кудо до них.
У моїй системі linuxmint (і я вважаю, що більшість систем, що базуються на ubuntu, і, можливо, також на базі Debian), є tmpfs, що належить користувачеві, автоматично встановлений на /run/user/1000/
Використовуйте df -T
для перевірки.
11:41:11 jesse @ Limbo: ~ $ df -T
Файлова система Тип 1К-блоків Використовується Доступне використання% Встановлено
udev devtmpfs 15904812 4 15904808 1% / dev
tmpfs tmpfs 3184120 1700 3182420 1% / пробіг
/ dev / sdb2 ext4 14248880 11464788 2037240 85% /
немає tmpfs 4 0 4 0% / sys / fs / cgroup
немає tmpfs 5120 0 5120 0% / run / lock
немає tmpfs 15920584 848 15919736 1% / пробіг / шм
відсутність tmpfs 102400 12 102388 1% / run / user
/ dev / sdb3 ext4 100861352 90755700 4959136 95% / mnt / дані
Під /run/user/
системою є каталог для кожного звичайного користувача в системі
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
Ці каталоги названі іменами відповідного користувача. Ми можемо отримати ідентифікатор користувача, id -u
щоб man id
отримати детальну інформацію про цю команду.
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
Потім ми можемо використовувати mktemp
команду з --tmpdir
можливістю створення тимчасових файлів і каталогів у цій tempfilesсистемі, створюючи тимчасові файли в ОЗП.
Дотримуючись наведених тут порад, спершу я створюю тимчасовий каталог, а потім створюю свої тимчасові файли:
mydir=$(mktemp -dt "$(basename $0).XXXXXXXX" --tmpdir=/run/user/$(id -u))
створити тимчасову папку , /run/user/1000/bash.w42BYxbG/
то
myfile=$(mktemp -t "$(basename $0).XXXXXXXX" --tmpdir=$mydir)
створити в ньому темпфіл.
Це робить очищення цих файлів простим, оскільки все, що мені потрібно зробити rm -r $mydir
.
За замовчуванням всі ці файли належать та читаються лише користувачем, який їх створив.
Примітка. $(basename $0)
Частина команди витягує ім'я сценарію / процесу, який виконав mktemp. Якщо у мене є сценарій,
/home/jesse/scripts/myScript.sh
він $(basename $0)
повертається
myScript.sh
при виконанні цього сценарію. Таким чином, вищезазначені команди створювали б /run/user/1000/myScript.sh.w42BYxbG/
і /run/user/1000/myScript.sh.w42BYxbG/myScript.sh.BCzSmq06
відповідно.