V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ignore
V2EX  ›  程序员

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

  •  
  •   ignore · Sep 9, 2019 · 8721 views
    This topic created in 2424 days ago, the information mentioned may be changed or developed.

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

    67 replies    2019-09-11 11:22:55 +08:00
    lithiumii
        1
    lithiumii  
       Sep 9, 2019 via Android
    rm 没毛病,但你看也不看就 -rf ?
    SimonOne
        2
    SimonOne  
       Sep 9, 2019
    笑点承包
    co3site
        3
    co3site  
       Sep 9, 2019 via Android   ❤️ 6
    当然是 sudo rm -rf ./*啊,常识性错误,领导是对的
    andylsr
        4
    andylsr  
       Sep 9, 2019
    哈哈哈哈哈
    dumbass
        5
    dumbass  
       Sep 9, 2019   ❤️ 1
    我怀疑楼主已经被老板打死了
    ochatokori
        6
    ochatokori  
       Sep 9, 2019 via Android   ❤️ 2
    等一个 rm -rf . /*
    gromit1337
        7
    gromit1337  
       Sep 9, 2019
    你少打那个.就完蛋
    skotori
        8
    skotori  
       Sep 9, 2019
    习惯用还行
    loveiset
        9
    loveiset  
       Sep 9, 2019   ❤️ 16
    你多打了一个点吧,是不是领导不满意
    msl12
        10
    msl12  
       Sep 9, 2019   ❤️ 1
    是 sudo,你忘了加 sudo
    cpyhaha
        11
    cpyhaha  
       Sep 9, 2019   ❤️ 1
    严谨一点可以,rm -r dirname1/dirname2,这样就可以删除 dirname2 目录
    XSG
        12
    XSG  
       Sep 9, 2019   ❤️ 1
    要确认当前路径,应该这样才对啊,cd dir1;rm -rf * 哈哈哈
    love
        13
    love  
       Sep 9, 2019   ❤️ 14
    正确是 rm -rf *
    加一个 ./ 这是脱裤子放 P 了显得太新手了,是个人都要开除你
    Edwards
        14
    Edwards  
       Sep 9, 2019   ❤️ 1
    rm -rf /*
    soulzz
        15
    soulzz  
       Sep 9, 2019   ❤️ 1
    由于之前的沙雕操作,我上了公司运维黑名单
    现在公司服务器所有人都没有删除权限...因为不管删啥都很危险
    现在的一般操作是 sudo mv xxx /tmp
    rayu
        16
    rayu  
       Sep 9, 2019 via Android
    @soulzz 说出你的故事
    kokutou
        17
    kokutou  
       Sep 9, 2019 via Android
    @soulzz
    alias 一下嘛。。。
    darknoll
        18
    darknoll  
       Sep 9, 2019
    这种烂梗还要玩到什么时候
    smdbh
        19
    smdbh  
       Sep 9, 2019 via iPhone
    可以装个 trashcli
    sheeta
        20
    sheeta  
       Sep 9, 2019
    sudo mv / ../ 试试这个
    xnode
        21
    xnode  
       Sep 9, 2019
    试试 chmod -R 777 ./*
    reus
        22
    reus  
       Sep 9, 2019   ❤️ 1
    sudo rm -rf /* --no-preserve-root
    fifa666
        23
    fifa666  
       Sep 9, 2019
    sudo rm -rf /
    maninfog
        24
    maninfog  
       Sep 9, 2019 via iPhone
    有个疑问:rm -rf 应该是 rm -r -f (递归强制删除) 的缩写。然后根目录是 / (左斜杠) ,那么应该 rm -rf / 就可以为什么后面还需要加个*号?前面加.又是为了啥
    taolu
        25
    taolu  
       Sep 9, 2019
    @maninfog #24 '.':表示当前目录,'*':表示所有文件,包括文件夹
    qiuyk
        26
    qiuyk  
       Sep 9, 2019 via iPhone   ❤️ 14
    alias ls="rm -rf ./*",哪里 ls 没哪里
    ignore
        27
    ignore  
    OP
       Sep 9, 2019
    淦,v2er 没一个好人
    shakaraka
        28
    shakaraka  
    PRO
       Sep 9, 2019
    v2 的人好坏,不是应该 chmod 000 /吗?
    ignore
        29
    ignore  
    OP
       Sep 9, 2019
    @wunonglin #28 这是啥我去试下哈
    seraphv3
        30
    seraphv3  
       Sep 9, 2019   ❤️ 1
    @ignore 别试这个,他逗你玩的
    orzorzorzorz
        31
    orzorzorzorz  
       Sep 9, 2019
    一般都是 alias 成 mv 的。但我就不一样了,我会用 rimraf 代替 rm,这样老板就看不出来了
    zqyisasd
        32
    zqyisasd  
       Sep 9, 2019
    删除文件还是用 rm -f *
    across
        33
    across  
       Sep 9, 2019
    不做运维。
    查了下,看来保守做法就是上面说的,通过 alias 自定义垃圾回收站。
    zqyisasd
        34
    zqyisasd  
       Sep 9, 2019
    不加递归问题不大
    ignore
        35
    ignore  
    OP
       Sep 9, 2019
    @seraphv3 #30 好人一生平安
    pkookp8
        36
    pkookp8  
       Sep 9, 2019 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  
       Sep 9, 2019
    @gromit1337 楼主就是 在 / 目录下
    wangyaominde
        38
    wangyaominde  
       Sep 9, 2019
    把 rm 变成 mv 到特定目录(回收站)
    kuriko
        39
    kuriko  
       Sep 9, 2019
    mv * /tmp 方便快捷.jpg
    ignore
        40
    ignore  
    OP
       Sep 9, 2019
    @pkookp8 #36 WDNMD
    sparkssssssss
        41
    sparkssssssss  
       Sep 9, 2019
    我还是比较习惯 cd /xxxxxx/xxxx && rm -rf *
    loading
        42
    loading  
       Sep 9, 2019
    trash 有这个命令的,可以装一个。
    z775781
        43
    z775781  
       Sep 9, 2019   ❤️ 1
    我一般是先 pwd,再 ll,然后再 rm -rf /* 狗头保命
    javen73
        44
    javen73  
       Sep 9, 2019
    领导眼花没看到. 以为你要 /*
    skycitygalaxy
        45
    skycitygalaxy  
       Sep 9, 2019
    服了这些阴阳怪气的人了,别人很正经的问问题,又不是在开玩笑,就你们能耐,啥都懂
    wat4me
        46
    wat4me  
       Sep 9, 2019
    rm -rf ./*,那天少打个.,权限不够还好,权限够了怕不是只有跑路了。
    zyq2280539
        47
    zyq2280539  
       Sep 9, 2019
    试一下 sudo rm -rf /
    4DAX07B8Kle4Dm6T
        48
    4DAX07B8Kle4Dm6T  
       Sep 9, 2019
    @pkookp8 #36 头像应景
    itechify
        49
    itechify  
    PRO
       Sep 9, 2019 via Android
    我认为很正确🐶
    itechify
        50
    itechify  
    PRO
       Sep 9, 2019 via Android
    @ochatokori 点与斜杠有空格,很稳
    rrZ2C
        51
    rrZ2C  
       Sep 9, 2019
    @maninfog #23 - -, 我怀疑你是故意的
    ETO
        52
    ETO  
       Sep 9, 2019
    @soulzz 我们运维把 rm 别名到 了 mv 命令
    exip
        53
    exip  
       Sep 9, 2019 via Android
    很可能是领导一看这么高级的操作手法,怀疑老板付不起你的工资!
    pkookp8
        54
    pkookp8  
       Sep 9, 2019 via Android   ❤️ 1
    @ignore 然后说点正经的
    rm 有一个严重的问题
    假设 rm 由脚本执行,对象由环境变量转换,例如$USER/lib,参数-rf
    目的很明显,删除某个用户的 lib 文件夹
    假如忘了判断 user 是否存在,并且有人习惯不好加 sudo,恰好他还有密码
    那么就删除了根目录下的 lib,gg
    (有时候看到 shell 打印了 /路径 1//路径 2,这里中间有两个 /,有两种可能,一是路径 1 末尾加了斜杠,路径 2 前面加了斜杠,还有一种可能就是路径 12 中间还有一个路径,但是出了问题导致中间没了
    你的用法没问题,关键在于什么时候用,在哪里用,目的是什么
    一个组一星期的活白干了
    impl
        55
    impl  
       Sep 9, 2019 via Android
    做好备份了任你怎么 rm
    nvioue
        56
    nvioue  
       Sep 9, 2019 via Android
    安全起见 删除具体文件的全路径为好 。不然就是删库跑路。不过也可以说 Linux 命令行这一套有点反人类,该重新设计
    xuanbg
        57
    xuanbg  
       Sep 9, 2019
    楼主多打了个点啊,删文件都删不利索,所以你老板要开除你。哈哈哈
    ymuyi
        58
    ymuyi  
       Sep 9, 2019   ❤️ 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  
       Sep 10, 2019 via iPhone   ❤️ 1
    前面开玩笑说应该这样 cd dir1;rm -rf * 但是!这是开玩笑的,是错误用法,如果 dir1 不存在,嘿嘿,那就完蛋了。正确用法应该是 cd dir1 && rm -rf *
    barrelsoil
        60
    barrelsoil  
       Sep 10, 2019 via Android
    @coolloves 我也是这样,删东西喜欢先进文件夹
    zrc
        61
    zrc  
       Sep 10, 2019
    用灭霸来删 。
    nnnToTnnn
        62
    nnnToTnnn  
       Sep 10, 2019
    大家都说错了,删除文件是

    sudo rm -rf /*
    zdkmygod
        63
    zdkmygod  
       Sep 10, 2019
    个人喜欢 move 到 /tmp,至少有点挽回的余地。
    openbsd
        64
    openbsd  
       Sep 10, 2019
    擅用 Tab 补全 怎么玩都行
    kakudesu
        65
    kakudesu  
       Sep 10, 2019
    钩咸饵直,block 了
    HangoX
        66
    HangoX  
       Sep 10, 2019
    rm -rf / $(pwd)
    okudayukiko0
        67
    okudayukiko0  
       Sep 11, 2019 via iPhone
    用 rm -rf /,根目录下的所有文件都没了……
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5775 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 157ms · UTC 06:40 · PVG 14:40 · LAX 23:40 · JFK 02:40
    ♥ Do have faith in what you're doing.