转义具有空格的文件名的变量

时间:2016-04-27 11:23:52

标签: bash pngcrush

我使用此行批量处理pngcrush,但我的文件包含空格,这些空格会被放入$line,因为它们不会被删除; t有效路径:

ls *.png | while read line; do pngcrush -brute $line compressed/$line; done

如何让$ line成为转义符号,Button - Users.png将替换为Button\ -\ Users.png

2 个答案:

答案 0 :(得分:6)

Don't parse the output of ls。请改为使用for循环。

for f in *.png; do
    pngcrush -brute "$line" compressed/"$line"
done

答案 1 :(得分:-2)

只需将变量括在双引号中即可。这是一个很好的做法:

ls *.png | while read line; do pngcrush -brute "$line" "compressed/$line"; done