Remove Spaces from File Names

By  on  

Spaces in file names are a nightmare with the web; you deal with %20 and other nonsense when spaces are in file names.  That's why when I receive images with spaces I cringe;  I mean hell, dealing with spaces of file systems sucks too.

Anyways, I use the following command to remove spaces in file names within a directory:

# Replace spaces in file names with "-"
for f in *\ *; do mv "$f" "${f// /-}"; done

In this case I replace spaces with a dash.  You can omit the dash if you'd rather there be nothing in place of spaces; underscores is another common pattern.

This script is not recursive, so it wont dive into subdirectories -- I don't usually have that case.

Recent Features

  • By
    Create Namespaced Classes with MooTools

    MooTools has always gotten a bit of grief for not inherently using and standardizing namespaced-based JavaScript classes like the Dojo Toolkit does.  Many developers create their classes as globals which is generally frowned up.  I mostly disagree with that stance, but each to their own.  In any event...

  • By
    Send Text Messages with PHP

    Kids these days, I tell ya.  All they care about is the technology.  The video games.  The bottled water.  Oh, and the texting, always the texting.  Back in my day, all we had was...OK, I had all of these things too.  But I still don't get...

Incredible Demos

  • By
    MooTools Overlay Plugin

    Overlays have become a big part of modern websites; we can probably attribute that to the numerous lightboxes that use them. I've found a ton of overlay code snippets out there but none of them satisfy my taste in code. Many of them are...

  • By
    Create a Simple News Scroller Using MooTools, Part I:  The Basics

    News scroller have been around forever on the internet. Why? Because they're usually classy and effective. Over the next few weeks, we'll be taking a simple scroller and making it into a flexible, portable class. We have to crawl before we...

Discussion

  1. Danny

    Is there a way to reverse this process? I get file names from the web that have no spaces. I want to put them back in. For example: HowToCookATurkey.txt would return to How To Cook A Turkey.txt

    I haven’t found any of the renaming programs out there that tell you how to do it. Thanks in advance.

  2. h

    you’re a lifesaver! thx!

  3. JD

    New to coding so need some help. Trying to figure out how to edit you code to work for my issue. Have a file, “Outfile-ABC-123 456 789.txt” in a directory, “//dev/out/file/” which has empty spaces in the file name which I need to replace the them with “0” or delete them all together whichever is simpler. Is the code below correct to help resolve my issue? Thanks in advance.

    Before: “Outfile-ABC-123 456 789.txt”

    After: “Outfile-ABC-12304560789.txt” or “Outfile-ABC-123456789.txt”

    My version of your code edited.

    for “Outfile-ABC-*” in (“\\Dev\Out\File\”;) do (mv “$Outfile-ABC-*” “${Outfile-ABC-*// /0}”); done

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!