filename with space

2020-04-14 07:29发布

问题:

I have written a shell script which picks all the files recursively inside all the directories and prepared a report with the file last modified, size. The problem that I am facing, there are few files with name as "User Interface"(space in between). How to use there files in the for loop of the shell script and fetch the files and directories inside this. Thanks in advance

回答1:

Just put the file name variable between double quotes "$FILENAME"



回答2:

You're probably trying to use something like for file in $(command). Instead, use a while read loop or a for loop with globbing. Make sure you quote variables that contain filenamess.

#!/bin/sh
command | while read -r file
do
    something_with "$file"
done

or, in shells that support process substitution:

#!/bin/bash
while read -r file
do
    something_with "$file"
done < <(command)

If you're simply iterating over a list of files:

for file in "$dir"/*
do
    something_with "$file"
done


回答3:

Google Search led me to this page



标签: shell