BASH:我如何修改此脚本以允许带空格的文件名?

时间:2016-01-30 07:34:37

标签: bash

iphone=($( find /  -name "*~iphone*" ) )
echo ${#iphone[@]}
rm -r ${iphone[@]} >/dev/null 2>&1

这是我所拥有的脚本的一部分应删除所有文件" ~iphone"名称中的任何位置,以及回显它找到的文件数量。那么如何修改这个脚本以允许带有空格的文件名,因为它现在与计数混淆并且不会删除文件。

1 个答案:

答案 0 :(得分:1)

处理此问题的一种快速方法是使用进程替换。 ( note :删除rm,直到您确认所需行为为止进行评论)

#!/bin/bash

while read -r fname; do
    echo "$fname"
    # rm -r "$fname" >/dev/null 2>&1
done < <(find / -name "*~iphone")

这将找到包含"*~iphone"的所有文件/目录而不考虑空格并允许删除。如果要构建一个允许文件名中包含空格的数组,只需在每次循环时将"$fname"添加到数组中。