软链接解决磁盘不足

本人使用Linux系统作为主系统,在装系统时,分区分的有些小,导致现在装点东西都很难办。

1.操作系统

xx

2.问题

因为ubuntu中安装软件,大部分都是这样sudo apt-get install mysql 往往我们都不自定义安装路径,这样导致我的其它磁盘空间很大,根目录空间严重不足。

网上有说清缓存、清理不用的软件、拓展系统分区,这些方案要么是不靠谱,要么是太过麻烦。

这个问题困扰我蛮久的,最近想到了一个办法,用软链接将大目录或文件链接到其它磁盘,来增加源磁盘空间。

操作很简单,大致思路如下

* 复制srcPath到targetPath (复制的时候要加 -a 参数复制源目录的权限、组等信息)
* 备份srcPath (保证万无一失)
* 建立targetPath 软链接

3.解决

为了方便管理,在挂载的/ssd下面创建root目录,以后/ssd/root将作为target目录做统一处理。

下面写了一个简单的shell,方便操作,使用办法sh lnTool.sh -src=/usr/lib/xxx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash

# sh lnTool.sh -src=/usr/lib/xxx
# 移动src到target并创建软链接,解决目前空间不足问题

opts=$@
getparam(){
arg=$1
echo $opts | xargs -n1 | cut -b 2- | awk -F"=" '{if($1=="'"$arg"'") print $2}'
}

src=$(getparam src)
target=/ssd/root$src
# crete target dir
sudo mkdir -p $target
# copy src to target
sudo cp -a $src/* $target
# back src
sudo mv $src $src.bak
# create soft link
sudo ln -s $target $src

比如,发现/usr/share/doc目录很大,使用shell完成建立软链接

直接运行 sh lnTool.sh -src=/usr/share/doc即可。

如果使用提供的shell的话,先做适当改动并拿几个文件试一下,以免出现问题。