TPW*_*ang 2 macos terminal command-line imagemagick
我试图使用转换命令(OS X El Capitan)将.mod视频转换为它.mp4,它很快就填满了我的磁盘空间,我不得不Control+C停止它。
但重启后,磁盘空间仍然满了,我不知道缓存,即转换一半的视频在哪里,我不知道如何删除它。有人可以帮忙吗?
谢谢你!
更新答案 2023 年 7 月
您可以使用以下命令获取 MAGICK_TEMPORARY_PATH:
magic identify -list configure
Run Code Online (Sandbox Code Playgroud)
它列在接近末尾的地方。
原答案
如果您设置了两个环境变量之一:
MAGICK_TEMPORARY_PATH
MAGICK_TMPDIR
然后ImageMagick将使用该目录作为其临时文件。因此,第一种检查方法是运行
env | grep -i MAGICK
Run Code Online (Sandbox Code Playgroud)
看看你是否已经设置了。
如果失败,或者如果您没有设置环境变量,我知道找到ImageMagick在磁盘上缓存的最简单方法是打开缓存调试并强制ImageMagick转到磁盘。因此,我们可以使用以下命令打开缓存调试:
convert -debug cache ...
Run Code Online (Sandbox Code Playgroud)
我们可以通过限制允许使用的 RAM 来强制ImageMagick转到磁盘:
convert -limit memory 100k ...
Run Code Online (Sandbox Code Playgroud)
所以,如果我们把它们放在一起:
convert -debug cache -limit memory 100k -size 1000x1000 xc:gray image.jpg
2016-05-19T13:25:46+01:00 0:00.000 0.000u 6.9.4 Cache convert[46510]: cache.c/SetPixelCacheExtent/3500/Cache
extend gray[0] (/var/tmp/magick-46510CYSKWOdhlrym[3], disk, 8MB)
2016-05-19T13:25:46+01:00 0:00.010 0.000u 6.9.4 Cache convert[46510]: cache.c/OpenPixelCache/3776/Cache
open gray[0] (/var/tmp/magick-46510CYSKWOdhlrym[-1], Map, 1000x1000 7.629MiB)
Run Code Online (Sandbox Code Playgroud)
而且,如果您仔细观察,您可以看到它正在/var/tmp我的 Mac OSX 上使用 - 您的系统可能有所不同,但此技术应该向您展示它正在使用什么。
作为测试,我可以设置一个环境变量并检查ImageMagick 是否正在使用它:
# Tell IM where to cache stuff on disk
export MAGICK_TEMPORARY_PATH=/tmp/TEMPPATH
# Force an operation that will require caching
convert -debug cache -limit memory 100k -size 1000x1000 xc:gray image.jpg
2016-05-19T14:09:51+01:00 0:00.000 0.000u 6.9.4 Cache convert[46584]: cache.c/SetPixelCacheExtent/3500/Cache
extend gray[0] (/tmp/TEMPPATH/magick-46584CivsEmIPjwv2[3], disk, 8MB)
2016-05-19T14:09:51+01:00 0:00.010 0.000u 6.9.4 Cache convert[46584]: cache.c/OpenPixelCache/3776/Cache
open gray[0] (/tmp/TEMPPATH/magick-46584CivsEmIPjwv2[-1], Map, 1000x1000 7.629MiB)
Run Code Online (Sandbox Code Playgroud)
关键词:ImageMagick、环境变量、tmp、TEMPDIR、TEMPPATH、缓存、磁盘、缓存