首页 > 系统相关 >linux 下 rm 为什么要这么写?

linux 下 rm 为什么要这么写?

时间:2023-04-21 11:40:23浏览次数:31  
标签:bin 为什么 temp 代码 qc linux rm 写法


在我们的培训课程改为长期课之后 (易生信培训改为长周期模式),大家学习、练习、理解宏基因组、扩增子、转录组、全基因组各个分析流程的时间也多了,每次直播都能提出很多代码使用的问题,更加促进了 代码的理解、培训知识的落地、应用于自己的分析。有时一次直播全用来回答最近一周练习时出现的问题,这是一个很好的形式。

其中提到有一个问题是:下面代码中的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 也是常用的写法。


标签:bin,为什么,temp,代码,qc,linux,rm,写法
From: https://blog.51cto.com/u_16077014/6212323

相关文章

  • Dynamics CRM - 如何获取 Entity 的 ObjectTypeCode
    一、应用场景:   在平时的CRM开发中,偶尔需要用到EntityObjectTypeCode来校验Entity,在这里简单介绍下获取EntityObjectTypeCode的几种手段。二、获取方式:   a.通过SQLServer查询   在SQLServer中,我们可以通过EntityView获取ObjectTypeCode,查询语......
  • PyCharm安装教程【2023年】
    PyCharm2023最新版本安装详细教程: 访问JetBrains的官方网站,下载PyCharm最新版本的安装程序。  双击下载的安装程序,在弹出的安装向导中点击“下一步”。 阅读许可协议,并同意协议条款。  选择安装路径。默认情况下,PyCharm会安装在C:\ProgramFiles\JetBrains\PyC......
  • Linux——yum&rpm
    RPMRMP是LINUX下的一种软件的可执行程序,你只要安装它就可以了。这种软件安装包通常是一个RPM包(RedhatLinuxPacketManager,就是Redhat的包管理器),后缀是.rpm。RPM是RedHat公司随RedhatLinux推出了一个软件包管理器,通过它能够更加轻松容易地实现软件的安装。 1.安装软件:......
  • Linux系统中Shell的优势是什么?
    Linux系统中Shell的优势是什么?京东云开发者 51Testing软件测试网 2023-04-2017:30 发表于上海  Shell可以帮我们做什么 作为一名测试开发工程师,在与Linux服务器交互过程中,大都遇到过以下这些问题:一次申请多台服务器,多台服务器需要安装相同软件,配置相同的环......
  • Linux环境aspose插件word转pdf中文乱码解决方案
    本地没出现这个问题,到了linux环境出现了这个问题。第一想到的是字体。 解决方案1:环境解决安装字库,将win机器的c:\windows\fonts目录下的全部文件拷贝到生产服务器字体安装目录下,然后执行以下命令更新字体缓存。查看linux目前的所有字体fc-list查看Linux目前的所有中文......
  • Linux下搭建Go开发环境
    Linux下搭建Go开发环境可以按照以下步骤进行:1、下载最新的Go语言二进制包,可以从官网 https://golang.org/dl/ 下载。2、将下载好的包解压缩到你想要安装的目录下,如/usr/local/go。3、添加环境变量,在终端中输入以下命令:exportGOROOT=/usr/local/goexportPATH=$PATH:$GOROOT/bi......
  • linux下查看文件内容工具发布啦!
    在Linux下面我们想要查看一个文件里面的内容,除了用编辑器把文件打开查看外,linux还提供了几条命令,可以不用打开文件就能把文件的内容输出到显示屏上进行查看。1、catcat命令主要用来查看文件内容,创建文件,文件合并,追加文件等。1.1、查看文件命令:cat文件名说明:这条命令会......
  • 【Spring】@Configuration为什么会生成代理呢?
    1 前言首先说下为什么会产生这样的疑惑哈,最近在看Spring-retry的时候,发现:其次我们再来看个现象,@Component声明了一个Bean,内部有个单例AService,当我们调用两次 aService()发现得到的对象不一样:@ComponentpublicclassDemo{publicclassAService{publ......
  • 如何在 .NET Core WebApi 中处理 MultipartFormDataContent 中的文件
    在上一篇文章(如何在.NETCoreWebApi中处理MultipartFormDataContent)中,我们有描述过如何以最简单的方式在.NETCoreWebApi中处理MultipartFormDataContent。基于框架层面的封装,我们可以快速的从Request.Form中分别拿到文件内容和文本内容,但是这些默认的解析方式都是建......
  • 将MySQL当中的数据表在PHP当中转换成数组并打印,为什么没有显示到网页上面呢?
    如果你已经成功将MySQL中的数据表转换成了PHP数组,并且没有在网页上看到输出,那么可能是因为你没有将数组中的数据正确地渲染到HTML代码中。以下是一个简单的示例代码,演示如何将PHP数组转换为HTML表格并输出到网页上:phpCopycode<?php//连接到MySQL数据库$servername="local......