V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ignore
V2EX  ›  程序员

删除文件到底用啥命令啊?萌新求问

  •  
  •   ignore · 2019-09-09 11:30:43 +08:00 · 7788 次点击
    这是一个创建于 1906 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我习惯用 rm -rf ./* ,领导看了就说要开除我

    67 条回复    2019-09-11 11:22:55 +08:00
    lithiumii
        1
    lithiumii  
       2019-09-09 11:35:42 +08:00 via Android
    rm 没毛病,但你看也不看就 -rf ?
    SimonOne
        2
    SimonOne  
       2019-09-09 11:39:48 +08:00
    笑点承包
    co3site
        3
    co3site  
       2019-09-09 11:40:01 +08:00 via Android   ❤️ 6
    当然是 sudo rm -rf ./*啊,常识性错误,领导是对的
    andylsr
        4
    andylsr  
       2019-09-09 11:40:24 +08:00
    哈哈哈哈哈
    bojackhorseman
        5
    bojackhorseman  
       2019-09-09 11:40:30 +08:00   ❤️ 1
    我怀疑楼主已经被老板打死了
    ochatokori
        6
    ochatokori  
       2019-09-09 11:42:07 +08:00 via Android   ❤️ 2
    等一个 rm -rf . /*
    gromit1337
        7
    gromit1337  
       2019-09-09 11:49:36 +08:00
    你少打那个.就完蛋
    skotori
        8
    skotori  
       2019-09-09 11:50:17 +08:00
    习惯用还行
    loveiset
        9
    loveiset  
       2019-09-09 11:50:50 +08:00   ❤️ 16
    你多打了一个点吧,是不是领导不满意
    msl12
        10
    msl12  
       2019-09-09 11:54:19 +08:00   ❤️ 1
    是 sudo,你忘了加 sudo
    cpyhaha
        11
    cpyhaha  
       2019-09-09 11:54:59 +08:00   ❤️ 1
    严谨一点可以,rm -r dirname1/dirname2,这样就可以删除 dirname2 目录
    XSG
        12
    XSG  
       2019-09-09 11:57:11 +08:00   ❤️ 1
    要确认当前路径,应该这样才对啊,cd dir1;rm -rf * 哈哈哈
    love
        13
    love  
       2019-09-09 11:57:40 +08:00   ❤️ 14
    正确是 rm -rf *
    加一个 ./ 这是脱裤子放 P 了显得太新手了,是个人都要开除你
    Edwards
        14
    Edwards  
       2019-09-09 11:58:24 +08:00   ❤️ 1
    rm -rf /*
    soulzz
        15
    soulzz  
       2019-09-09 12:03:19 +08:00   ❤️ 1
    由于之前的沙雕操作,我上了公司运维黑名单
    现在公司服务器所有人都没有删除权限...因为不管删啥都很危险
    现在的一般操作是 sudo mv xxx /tmp
    rayu
        16
    rayu  
       2019-09-09 12:09:45 +08:00 via Android
    @soulzz 说出你的故事
    kokutou
        17
    kokutou  
       2019-09-09 12:45:40 +08:00 via Android
    @soulzz
    alias 一下嘛。。。
    darknoll
        18
    darknoll  
       2019-09-09 12:47:51 +08:00
    这种烂梗还要玩到什么时候
    smdbh
        19
    smdbh  
       2019-09-09 13:00:55 +08:00 via iPhone
    可以装个 trashcli
    sheeta
        20
    sheeta  
       2019-09-09 13:17:28 +08:00
    sudo mv / ../ 试试这个
    xnode
        21
    xnode  
       2019-09-09 13:19:20 +08:00
    试试 chmod -R 777 ./*
    reus
        22
    reus  
       2019-09-09 13:21:52 +08:00   ❤️ 1
    sudo rm -rf /* --no-preserve-root
    fifa666
        23
    fifa666  
       2019-09-09 13:27:11 +08:00
    sudo rm -rf /
    maninfog
        24
    maninfog  
       2019-09-09 13:30:37 +08:00 via iPhone
    有个疑问:rm -rf 应该是 rm -r -f (递归强制删除) 的缩写。然后根目录是 / (左斜杠) ,那么应该 rm -rf / 就可以为什么后面还需要加个*号?前面加.又是为了啥
    taolu
        25
    taolu  
       2019-09-09 13:35:39 +08:00
    @maninfog #24 '.':表示当前目录,'*':表示所有文件,包括文件夹
    qiuyk
        26
    qiuyk  
       2019-09-09 13:37:22 +08:00 via iPhone   ❤️ 14
    alias ls="rm -rf ./*",哪里 ls 没哪里
    ignore
        27
    ignore  
    OP
       2019-09-09 14:04:49 +08:00
    淦,v2er 没一个好人
    wunonglin
        28
    wunonglin  
       2019-09-09 14:10:53 +08:00
    v2 的人好坏,不是应该 chmod 000 /吗?
    ignore
        29
    ignore  
    OP
       2019-09-09 14:12:33 +08:00
    @wunonglin #28 这是啥我去试下哈
    seraphv3
        30
    seraphv3  
       2019-09-09 14:15:35 +08:00   ❤️ 1
    @ignore 别试这个,他逗你玩的
    orzorzorzorz
        31
    orzorzorzorz  
       2019-09-09 14:20:53 +08:00
    一般都是 alias 成 mv 的。但我就不一样了,我会用 rimraf 代替 rm,这样老板就看不出来了
    zqyisasd
        32
    zqyisasd  
       2019-09-09 14:26:28 +08:00
    删除文件还是用 rm -f *
    across
        33
    across  
       2019-09-09 14:26:37 +08:00
    不做运维。
    查了下,看来保守做法就是上面说的,通过 alias 自定义垃圾回收站。
    zqyisasd
        34
    zqyisasd  
       2019-09-09 14:26:51 +08:00
    不加递归问题不大
    ignore
        35
    ignore  
    OP
       2019-09-09 14:42:12 +08:00
    @seraphv3 #30 好人一生平安
    pkookp8
        36
    pkookp8  
       2019-09-09 14:47:25 +08:00 via Android   ❤️ 7
    dd,你要学会用 dd
    dd 代替 rm 显然更合理
    理由如下
    1.rm 只是对文件内容打上标记,使其不可见。dd 才是真正擦除扇区。dd 更安全。试想,你仅仅 rm 了文件,被不法分子恢复了怎么办?企业机密泄露很严重的
    2.文件名很容易搞混,或者脚本中多了一个空格可能导致删除整个磁盘,恢复文件虽然可行但很麻烦。dd 可以指定硬盘区域,不会有这种问题。试想,如果你能记住 ip,你还会用域名吗?你记不住 ip,但是电脑可以,不用想了,dd 性能更好,没有中间层降性能!别人的脚本跑一年,你的跑半分钟,谁厉害?
    3.大家都在用 rm,你能用 dd,老板才会优先考虑你,你才有核心竞争力。否则你随时可能被替代。试想你 50 岁时用 rn 拿着 3 万工资,一个年轻小伙用 rm 拿着 1 万,老板为什么要留你

    狗头保命
    zhengwenk
        37
    zhengwenk  
       2019-09-09 15:16:54 +08:00
    @gromit1337 楼主就是 在 / 目录下
    wangyaominde
        38
    wangyaominde  
       2019-09-09 15:24:00 +08:00
    把 rm 变成 mv 到特定目录(回收站)
    kuriko
        39
    kuriko  
       2019-09-09 15:28:32 +08:00
    mv * /tmp 方便快捷.jpg
    ignore
        40
    ignore  
    OP
       2019-09-09 16:04:32 +08:00
    @pkookp8 #36 WDNMD
    coolloves
        41
    coolloves  
       2019-09-09 16:33:31 +08:00
    我还是比较习惯 cd /xxxxxx/xxxx && rm -rf *
    loading
        42
    loading  
       2019-09-09 16:39:00 +08:00
    trash 有这个命令的,可以装一个。
    z775781
        43
    z775781  
       2019-09-09 17:01:36 +08:00   ❤️ 1
    我一般是先 pwd,再 ll,然后再 rm -rf /* 狗头保命
    javen73
        44
    javen73  
       2019-09-09 17:14:03 +08:00
    领导眼花没看到. 以为你要 /*
    skycitygalaxy
        45
    skycitygalaxy  
       2019-09-09 17:14:12 +08:00
    服了这些阴阳怪气的人了,别人很正经的问问题,又不是在开玩笑,就你们能耐,啥都懂
    wat4me
        46
    wat4me  
       2019-09-09 17:20:11 +08:00
    rm -rf ./*,那天少打个.,权限不够还好,权限够了怕不是只有跑路了。
    zyq2280539
        47
    zyq2280539  
       2019-09-09 17:22:37 +08:00
    试一下 sudo rm -rf /
    wispx
        48
    wispx  
       2019-09-09 17:28:08 +08:00
    @pkookp8 #36 头像应景
    oneisall8955
        49
    oneisall8955  
       2019-09-09 17:35:32 +08:00 via Android
    我认为很正确🐶
    oneisall8955
        50
    oneisall8955  
       2019-09-09 17:36:21 +08:00 via Android
    @ochatokori 点与斜杠有空格,很稳
    rrZ2C
        51
    rrZ2C  
       2019-09-09 17:46:56 +08:00
    @maninfog #23 - -, 我怀疑你是故意的
    ETO
        52
    ETO  
       2019-09-09 17:56:15 +08:00
    @soulzz 我们运维把 rm 别名到 了 mv 命令
    exip
        53
    exip  
       2019-09-09 18:30:05 +08:00 via Android
    很可能是领导一看这么高级的操作手法,怀疑老板付不起你的工资!
    pkookp8
        54
    pkookp8  
       2019-09-09 18:38:02 +08:00 via Android   ❤️ 1
    @ignore 然后说点正经的
    rm 有一个严重的问题
    假设 rm 由脚本执行,对象由环境变量转换,例如$USER/lib,参数-rf
    目的很明显,删除某个用户的 lib 文件夹
    假如忘了判断 user 是否存在,并且有人习惯不好加 sudo,恰好他还有密码
    那么就删除了根目录下的 lib,gg
    (有时候看到 shell 打印了 /路径 1//路径 2,这里中间有两个 /,有两种可能,一是路径 1 末尾加了斜杠,路径 2 前面加了斜杠,还有一种可能就是路径 12 中间还有一个路径,但是出了问题导致中间没了
    你的用法没问题,关键在于什么时候用,在哪里用,目的是什么
    一个组一星期的活白干了
    impl
        55
    impl  
       2019-09-09 19:26:40 +08:00 via Android
    做好备份了任你怎么 rm
    nvioue
        56
    nvioue  
       2019-09-09 19:58:48 +08:00 via Android
    安全起见 删除具体文件的全路径为好 。不然就是删库跑路。不过也可以说 Linux 命令行这一套有点反人类,该重新设计
    xuanbg
        57
    xuanbg  
       2019-09-09 20:01:27 +08:00
    楼主多打了个点啊,删文件都删不利索,所以你老板要开除你。哈哈哈
    ymuyi
        58
    ymuyi  
       2019-09-09 22:13:04 +08:00   ❤️ 3
    mkdir /tmp/empty
    rsync --delete-before -d /tmp/empty/ /the/folder/you/want/delete/

    参考:
    https://www.cnblogs.com/shuaixf/p/3493025.html
    XSG
        59
    XSG  
       2019-09-10 06:58:51 +08:00 via iPhone   ❤️ 1
    前面开玩笑说应该这样 cd dir1;rm -rf * 但是!这是开玩笑的,是错误用法,如果 dir1 不存在,嘿嘿,那就完蛋了。正确用法应该是 cd dir1 && rm -rf *
    barrelsoil
        60
    barrelsoil  
       2019-09-10 07:41:44 +08:00 via Android
    @coolloves 我也是这样,删东西喜欢先进文件夹
    zrc
        61
    zrc  
       2019-09-10 08:54:22 +08:00
    用灭霸来删 。
    nnnToTnnn
        62
    nnnToTnnn  
       2019-09-10 08:55:52 +08:00
    大家都说错了,删除文件是

    sudo rm -rf /*
    zdkmygod
        63
    zdkmygod  
       2019-09-10 09:11:32 +08:00
    个人喜欢 move 到 /tmp,至少有点挽回的余地。
    openbsd
        64
    openbsd  
       2019-09-10 09:15:01 +08:00
    擅用 Tab 补全 怎么玩都行
    kakudesu
        65
    kakudesu  
       2019-09-10 09:52:51 +08:00
    钩咸饵直,block 了
    HangoX
        66
    HangoX  
       2019-09-10 12:03:28 +08:00
    rm -rf / $(pwd)
    okudayukiko0
        67
    okudayukiko0  
       2019-09-11 11:22:55 +08:00 via iPhone
    用 rm -rf /,根目录下的所有文件都没了……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2713 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 00:03 · PVG 08:03 · LAX 16:03 · JFK 19:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.