gtags
我一生中第一次尝试使用但出现错误:
/usr/bin/sort: write failed: /tmp/sortDGCa2E: No space left on device
df -h
输出:
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 797M 9.3M 788M 2% /run
/dev/sda1 31G 5.7G 24G 20% /
tmpfs 3.9G 32K 3.9G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda5 2.9G 278M 2.4G 11% /var
/dev/sda8 64G 15G 47G 24% /home
/dev/sda7 560M 55M 465M 11% /tmp
tmpfs 797M 28K 797M 1% /run/user/115
tmpfs 797M 28K 797M 1% /run/user/1000
df -i
输出:
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 1017293 369 1016924 1% /dev
tmpfs 1020112 625 1019487 1% /run
/dev/sda1 2056192 190263 1865929 10% /
tmpfs 1020112 7 1020105 1% /dev/shm
tmpfs 1020112 5 1020107 1% /run/lock
tmpfs 1020112 15 1020097 1% /sys/fs/cgroup
/dev/sda5 192384 10240 182144 6% /var
/dev/sda8 4243456 243436 4000020 6% /home
/dev/sda7 37440 74 37366 1% /tmp
tmpfs 1020112 25 1020087 1% /run/user/115
tmpfs 1020112 29 1020083 1% /run/user/1000
我对此进行了大量搜索,发现可以使用某些标志来将/usr/bin/sort
另一个目录用于临时文件,但是该怎么做呢gtags
?我说得对吗?sort
在里面调用?还有其他解决方案吗?
答案1
您的/tmp
是单独的挂载点,挂载文件系统的大小报告为560M
,465M
可用。显然这对于您要做的事情来说还不够。
在我的 Ubuntu 中man 1 gtags
描述了该工具使用的环境变量。其中之一是TMPDIR
:
TMPDIR
存储临时文件的位置。默认值为/tmp
。
一点也不奇怪。来自维基百科:
TMPDIR
是 Unix 和 POSIX 中的标准环境变量,用于指定暂存空间的临时目录。大多数 Unix 程序都会遵守此设置,并使用其值来表示临时文件的暂存区域,而不是常见的默认值/tmp
或/var/tmp
。
下面有足够的空间/home
。我假设你的$HOME
就在里面/home
。在那里创建你自己的临时目录,专门用于gtags
:
mkdir "$HOME/tmp_gtags"
现在,无论何时你想使用它,你都需要TMPDIR
在环境中有适当的变量gtags
。有几种方法:
可以预先设置:
TMPDIR="$HOME/tmp_gtags" export TMPDIR
从现在开始,此 shell 会话中的所有命令(及其后代)都将
TMPDIR
作为环境的一部分继承(但一般来说,命令可能会改变其环境)。然后您可以运行gtags
:gtags …
或者,您可以仅为一个特定命令指定变量。一般形式为
variable=value some_command arguments
就你的情况而言:
TMPDIR="$HOME/tmp_gtags" gtags …
或者你可以使用
gtags.conf
它。参见man 5 gtags.conf
:您可以将以下环境变量用作字符串变量。如果设置了这些变量,则在命令执行之前会设置同名的环境变量。
[…]
TMPDIR
请参阅手册以了解语法。我认为不能使用
$HOME
ingtags.conf
。我只是简单地研究了手册,并没有进行任何测试,所以请您自行研究。现在我相信设置会是这样的:TMPDIR=/home/anton/tmp_gtags:
请记住,虽然你的操作系统可能一些维护和清理/tmp
,维护tmp_gtags
是你的工作。