我使用脚本删除垃圾箱或垃圾目录或类似目录中的旧文件。
除名称中包含特殊字符或空格外,其他均能正常工作
/home/theos98/mail/theos98.es/dmalmierca/.Trash.Renfe Mart&AO0-n Fernandez
/home/theos98/mail/theos98.es/dmalmierca/.Trash.Renfe Cordoba
/home/theos98/mail/theos98.es/dmalmierca/.Trash.Renfe - Sevilla
在这种情况下不起作用
我使用了两种格式,但不起作用
for p in $(cat /tmp/listado.txt); do find "$p" -type f -mtime +50 -delete; done
或者
for p in $(cat /tmp/listado.txt); do find $p -type f -mtime +50 -delete; done
两个都出现此错误
/home/theos98/mail/theos98.es/dmalmierca/.Trash.Renfe Not found
我不知道如何才能将正确的行传递给脚本。
答案1
该for
语句逐字“读取”输入。您需要逐行阅读。
while read -r line; do find "$line" -type f ...; done < /tmp/listado.txt
这-r
可以防止行中的反斜杠被解释。