从查找命令和邮件中仅获取文件名

时间:2014-06-12 14:59:18

标签: unix find mailx

以下find命令将生成多个文件并发送所有这些

的邮件
find /home/cde -ctime -1 -name "Sum*pdf*" -exec uuencode {} {} \; |mailx -s "subject" abc@gmail.com

但我得到的附件有“homecdeSum123.pdf”和“homecdeSum324.pdf”。如何在我的附件中获取确切的文件名。请帮帮我

2 个答案:

答案 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