I installed some software and I think afterwards I was navigating through CLI and noticed that some directories or some files in some directories had single quotation marks around the names. They don’t appear in the GUI. How do I get rid of them? Do I have to use a recursive command to delete the quotation marks for the entire file system?

I’ve actually had this problem a few times in the past but cannot recall why they happen nor what the solution was.

  • @MorphiusFaydal
    link
    English
    641 year ago

    The quotes are there because there’s spaces in the file name. You don’t see them in the GUI because they’re not actually there. They’re added by the ‘ls’ command to help with copy/pasting of file names. You can add ‘export QUOTING_STYLE=literal’ to your ~/.bashrc to permanently suppress them, or just do ‘ls -N’ as a one off.

    • @[email protected]OP
      link
      fedilink
      7
      edit-2
      1 year ago

      Thanks. The export command got rid of the quotation marks but I still have an issue where when I cd into one of the directories that had quotation marks (a directory with two words in the name) there is a backslash after the first word and a forward slash at the end of the file name when I use tab to complete the rest of the file name.

      • _cnt0
        link
        fedilink
        461 year ago

        Add-on: you really don’t need to get rid of the quotes. It’s a very reasonable behavior. You just need to learn/understand what they mean.

      • _cnt0
        link
        fedilink
        30
        edit-2
        1 year ago

        The backslash escapes the space because it would otherwise denote a seperator to the next argument of the command. ls a b c means invoke ls with the three arguments a,b, and c. ls 'a b c' or ls a\ b\ c means invoke ls with one argument “a b c”. That behavior is universal for pretty much all unix/linux shells (ie bash).

        • @[email protected]OP
          link
          fedilink
          91 year ago

          Thanks for explaining. How do I go about editing the bashrc file to add the export line? I am still relatively new to linux and the file has a warning about making changes unless I know what I’m doing.

          • @AlpacaChariot
            link
            English
            41 year ago

            Just paste it into the end of the file, save and close it, then run “source ~/.bashrc” in the terminal to force bash to read the new settings (or close the terminal and open it again).

      • @Falmarri
        link
        English
        161 year ago

        The backslash is escaping the space, and the forward slash is just how tab complete works, because it’s a directory, and you might be wanting to add more to go further down the directory tree

        • elouboub
          link
          fedilink
          151 year ago

          I am impressed nobody called OP a noob and told him to “RTFM”. Good job y’all! Keep being a positive force.

          • wolfshadowheart
            link
            fedilink
            111 year ago

            Somewhat surprisingly the fediverse has been much kinder for Linux learners than my experience everywhere else online the last decade :)

      • @[email protected]
        link
        fedilink
        131 year ago

        That’s to escape the space, so that it doesn’t register as a separate keyword in whatever command you’re running.

        For paths/filenames with spaces, you must escape all spaces with the backslash, or use single/double quotes around it. Single quotes also prevent stuff like interpreting $ etc etc as a reference to a variable

      • @[email protected]
        link
        fedilink
        81 year ago

        That is normal with tab completion, since spaces will be seen as other commands so the slash escapes the space character