如果缓存目录变得太大,我正在写一个小小的脚本来清除我的Linux上每天通过CRON的空间。 因为我在bash脚本编程中真的很绿,所以我需要一点点的帮助。shell脚本在磁盘已满时删除文件
这里是基本逻辑(伪代码)
if (Drive Space Left < 5GB)
{
change directory to '/home/user/lotsa_cache_files/'
if (current working directory = '/home/user/lotsa_cache_files/')
{
delete files in /home/user/lotsa_cache_files/
}
}
获取驱动器的剩余空间
我打算获得从“的/ dev/SDA5”命令留下的驱动器空间。 如果下面的值返回给我您的信息:
Filesystem 1K-blocks Used Available Use% Mounted on<br>
/dev/sda5 225981844 202987200 11330252 95%/
那么一点点正则表达式可能需要得到“11330252”出返回值
有点偏执
的“如果(当前工作目录=/home/user/lotsa_cache_files /)'部分仅仅是我内心偏执狂的防御机制。在我继续使用删除命令之前,我想确保我确实在'/ home/user/lotsa_cache_files /'中,如果当前工作目录由于某种原因而不存在,这可能具有破坏性。
删除文件
文件的删除将与命令下面而不是通常的RM -f来完成:
find . -name "*" -print | xargs rm
这是由于Linux系统的固有的不能为“RM”一个目录,如果它包含太多的文件,就像我以前学过的那样。
“如果Linux系统包含的文件过多,那么Linux系统固有的不可能'rm'目录”这是否也意味着“rm -rf”? – rzetterberg 2011-05-06 08:45:20