我只是在重要文件上使用“mv”而不是“cp”。将来我该如何避免这种情况?

我只是在重要文件上使用“mv”而不是“cp”。将来我该如何避免这种情况?

我在工作场所管理一个数据集(使用 Centos 7)。该数据集的数据文件采用文件结构,其中所有内容都属于“myuser:group”,仅允许 myuser(又名我)写入权限,以防止不幸的事情发生。

然而,今天我只是直接复制一个项目的整个文件,并在它们上使用“mv”而不是“cp”。虽然这并没有造成什么坏处,但它确实提醒我可能会发生不好的事情。

目标是,我希望“组”的用户能够“cp”此目录结构之外的文件,但没有写入权限。这些文件已经在其他地方备份,所以我的目标是防止自己将来做一些愚蠢的事情,而不是在愚蠢的情况下恢复文件。

我正在考虑让 root 成为这些文件的所有者,所以我必须“sudo”才能造成任何损害。

我可以做什么来帮助防止自己意外编辑/删除这些文件?

答案1

好吧,您可以做几件事,每种方法都有其优点和缺点。

您可以设置适当的所有权(就像您当前所做的那样),其中用户拥有rw(或r)访问权限,组拥有r

您可以使文件不可变 - 通过修改文件的属性,您可以防止文件被删除或修改(但如果有权限,它将是可读的r) - chattr +i file。如果您稍后需要修改该文件,只需禁用该+i标志即可chattr -i

无论您选择哪种,您都需要严格遵循您决定在组织中实施的政策、工作流程和程序。他们会阻止你犯这样的..错误。

答案2

我不确定我的解决方案会对您有帮助,但它可以避免我做愚蠢的事情。打开~/.bashrc并添加以下内容:

alias mv="ensure && mv"

ensure() {
    echo Are you sure about that? Type uppercase yes
    read ans
    if [[ $ans = YES ]] ; then
    return 0
    else
    return 1
    fi
}

YES现在您每次需要使用时都需要键入mv

答案3

别名 mv ---> "mv -i" 怎么样,这将在您移动文件时引起提示。

在 csh 中,您可以将其放入 ~/.cshrc 中:

 alias    mv     "mv -i"

相关内容