• Captain Aggravated@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    21
    ·
    14 hours ago

    UGH that shit.

    rm deletes a file. It can’t delete a directory, you have to use

    rmdir to delete a directory…as long as there’s nothing in that directory. If there’s anything in the directory, you have to know to use

    rm -r to delete a directory and its contents, and no

    rmdir -r isn’t right somehow!

    • Matriks404@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      5 hours ago

      I don’t think there’s any reason to use rmdir unless you write (Ba)sh scripts, and you want to make sure that the directory is indeed empty. Just use rm -r.

      Also note that you can use rmdir -p this/is/some/path to remove all nested directories including the parent (this here). But this will only work if there’s exactly one directory per parent directory, and the last directory doesn’t have any files (including directories). This might be helpful for some scripts.

      rmdir -r isn’t a thing, because that would invalidate the reason this command exists.

    • Opisek@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      6 hours ago

      Reminds me of a little annoyance I have with cat and ls. Yeah they technically do different things, one is for files and one is for directories. But so often I just find myself wishing I could use one command for both. Like making cat directory act as ls. Maybe I’m the only one who feels that way.

    • setsubyou@lemmy.world
      link
      fedilink
      arrow-up
      3
      arrow-down
      1
      ·
      10 hours ago

      On Linux, rm can delete empty directories with -d too, not just with -r.

      rmdir is the counterpart to mkdir, which creates empty directories, so of course it can only remove empty directories. After all mkdir can’t create full directories either. There however is rmdir -p as a counterpart to mkdir -p, so if there is something in the directory, you can use that, as long as the something is an empty directory.

      • Captain Aggravated@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        4
        arrow-down
        1
        ·
        edit-2
        8 hours ago

        Yeah it still has a certain “AAAAH! You didn’t say simon says” feel to it when you’re actually trying to get things done. Like imagine if you had to choose a different option from a context menu to delete a folder in a GUI. If there was an option for Remove File and another one placed a little elsewhere in the menu that says Remove Directory.

        I’m still gonna call it an unsanded corner.