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
    9 Mind-Blowing WebGL Demos

    As much as developers now loathe Flash, we're still playing a bit of catch up to natively duplicate the animation capabilities that Adobe's old technology provided us.  Of course we have canvas, an awesome technology, one which I highlighted 9 mind-blowing demos.  Another technology available...

  • By
    How to Create a RetroPie on Raspberry Pi – Graphical Guide

    Today we get to play amazing games on our super powered game consoles, PCs, VR headsets, and even mobile devices.  While I enjoy playing new games these days, I do long for the retro gaming systems I had when I was a kid: the original Nintendo...

Incredible Demos

  • By
    MooTools Link Fading

    We all know that we can set a different link color (among other properties) on the hover event, but why not show a little bit more dynamism by making the original color fade to the next? Using MooTools 1.2, you can achieve that effect. The MooTools...

  • By
    CSS Triangles

    I was recently redesigning my website and wanted to create tooltips.  Making that was easy but I also wanted my tooltips to feature the a triangular pointer.  I'm a disaster when it comes to images and the prospect of needing to make an image for...

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!