使用BASH搜索文件夹名称中包含空格的子文件夹
发布时间:2020-12-15 21:33:23 所属栏目:安全 来源:网络整理
导读:我正在编写一个 shell脚本,它遍历一组IMAP文件夹. 鉴于: WORKPATH=/var/mail/mydomain.com/myaccount/ 我想列出里面的所有子文件夹. 轻松找到: for SUB_FOLDER in $(find "$WORKPATH" -type d)do echo "SUB_FOLDER: $SUB_FOLDER"done 但是:其中一些文件夹
我正在编写一个
shell脚本,它遍历一组IMAP文件夹.
鉴于: WORKPATH=/var/mail/mydomain.com/myaccount/ 我想列出里面的所有子文件夹. 轻松找到: 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只为4个for循环instad生成2个令牌,或者迭代列表的替代方法. 解决方法
使用while循环:
while read SUB_FOLDER; do echo "SUB_FOLDER: $SUB_FOLDER"; done < <(find "$WORKPATH" -type d) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |