下面代码中的rm
为什么要写成/bin/rm
?
大文件清理,高宿主含量样本可节约>90%空间
/bin/rm -rf temp/qc/*contam* temp/qc/*unmatched* temp/qc/*.fq
ls -l temp/qc/
这是一个很好的问题,观察很仔细, 也带着了自己的思考。
rm
是 Linux 下的一个危险命令,用于删除文件或文件夹,删除后很难恢复。程序员常做的删库跑路之一就是rm -rf /
,在有权限的情况下递归删除服务器所有文件。
通常为了避免误删或使用方便,一般大家会在自己的~/.bashrc
或类似的文件中重定义一些命令,比如alias rm='rm -i'
或复杂一些, 如下
function rm(){
if [[ $# -lt 1 ]]; then
echo "Usage: rm input"
return 1
fi
/bin/mkdir -p ~/trash
/bin/mv $@ ~/trash
}
所以,看上去同样写法的命令在不同的电脑上行为可能完全不一样。
我们自己在写脚本时要尽量保证代码适用于不同的电脑,所以这里我们用了复杂写法,直接指定用/bin
目录下的rm
,看上去是麻烦了些,但好处是不受用户自定义行为的影响,更通用。类似的/bin/cp
和/bin/mv
也是常用的写法。