iphone=($( find / -name "*~iphone*" ) )
echo ${#iphone[@]}
rm -r ${iphone[@]} >/dev/null 2>&1
这是我所拥有的脚本的一部分应删除所有文件" ~iphone"名称中的任何位置,以及回显它找到的文件数量。那么如何修改这个脚本以允许带有空格的文件名,因为它现在与计数混淆并且不会删除文件。
答案 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"
添加到数组中。