我正在编写一个脚本,用于遍历一组IMAP文件夹。
给定:
WORKPATH=/var/mail/mydomain.com/myaccount/
我可以帮您进行翻译。以下是内容的汉语翻译:
我想列出所有子文件夹。
使用find命令很简单:
for SUB_FOLDER in $(find "$WORKPATH" -type d)
do
echo "SUB_FOLDER: $SUB_FOLDER"
done
然而:其中一些文件夹的名称中包含空格,例如:
/var/mail/mydomain.com/myaccount/.Deleted Mails/
/var/mail/mydomain.com/myaccount/.Junk Mails/
这使得上述代码打印出了大约以下内容:
SUB_FOLDER: /var/mail/mydomain.com/myaccount/.Deleted
SUB_FOLDER: Mails/
SUB_FOLDER: /var/mail/mydomain.com/myaccount/.Junk
SUB_FOLDER: Mails/
我尝试使用-print0选项并将其管道传递给xargs -0,但是没有成功。对IFS进行调整会对输出产生更多不必要的影响。
我真的需要一个提示,如何使find仅生成2个标记以用于for循环,而不是4个,或者使用其他方法来迭代列表。