以下find命令将生成多个文件并发送所有这些
的邮件find /home/cde -ctime -1 -name "Sum*pdf*" -exec uuencode {} {} \; |mailx -s "subject" abc@gmail.com
但我得到的附件有“homecdeSum123.pdf”和“homecdeSum324.pdf”。如何在我的附件中获取确切的文件名。请帮帮我
答案 0 :(得分:0)
尝试回答看起来至少是你问题的一部分
但我得到的附件有“homecdeSum123.pdf”和“homecdeSum324.pdf”。如何在我的附件中获取确切的文件名。
这个问题的接受答案: find: What's up with basename and dirname? 在我看来,我提供了很多有用的信息,但我试图提取上述内容的答案:
你所描述的是当你在做什么时
find /home/cde ....
你得到的文件名如“homecdeSum123.pdf”所以我的意思是你只需要文件的基名,而不是目录。
可以像这样访问(仅作为示例列表)
find `pwd` -name "*.png" -exec echo $(basename {} ) \;
稍微改变一下是使用-execdir
代替-exec
,这是(摘自手册页):
-execdir command {} +
Like -exec, but the specified command is run from the subdirectory containing the matched file, which is not normally the directory in which you started find.
这有帮助吗?
答案 1 :(得分:0)
单个邮件中的所有附件:
find /home/cde -ctime -1 -name "Sum*pdf*" | while read name; do uuencode "$name" "${name##*/}"; done | mailx -s "subject" abc@example.com
获取单独的邮件:
find /home/cde -ctime -1 -name "Sum*pdf*" | while read name; do uuencode "$name" "${name##*/}"| mailx -s "subject" abc@example.com ; done