我能想到的最好方法是使用符号链接
请注意,并非所有程序都安装在同一目录中,并且 /opt 可能不是最好的移动方式。 (仅移动一个文件夹/程序的例子见结尾)
这就是我使用 EasyPeasy (Ubuntu 10.04) 所做的
请仔细阅读此代码,如果使用不当,某些命令可能会删除重要文件。
首先,您需要确保 /opt(或您的发行版默认的 apt-get 安装目录)为空。如果您最有可能在 opt 文件夹中有数据,您可以先将其移动到其他位置以确保安全:
sudo mkdir /New_Location/newtmp # Generates Temporary Folder for Programs
sudo cp -a /opt/* /New_Location/newtmp # Moves Programs to Temp folder
备份后即可删除原目录:
sudo rm -rf /opt/ # Removes opt directory
然后您可以在具有大量空间的驱动器中创建新的 Program Files 文件夹并创建符号链接:
sudo mkdir /New_Location/Program-Files # Generates New Program Directory
sudo ln -s /New_Location/Program-Files /opt # Creates Symbolic Link
最后将所有旧程序文件移动到新文件夹并清理临时数据:
sudo cp -a /New_Location/newtmp/* /New_Location/Program-Files # Moves Programs to Program Files Folder
sudo rm -rf /New_Location/newtmp/ # Removes Temp folder
如果您只想移动一个占用大量空间的程序,您可以使用相同的过程。
例如:
要移动 Java(JVM 大约 300MB),请执行以下操作。
使用磁盘使用分析器检查 java 目录。
我的是 /usr/lib/jvm
sudo mkdir /New_Location/Program-Files/Java # Generates New Program Directory
sudo cp -a /usr/lib/jvm/* /New_Location/Program-Files/Java # Moves Program to new folder
sudo rm -rf /usr/lib/jvm # Removes opt directory
sudo ln -s /New_Location/Program-Files/Java /usr/lib/jvm # Creates Symbolic Link
此时最好重新启动,这应该会清除缓存。