at & rm - 在管道之前执行的命令

at & rm - 在管道之前执行的命令

系统:红帽7.8

目标:我有一个 bash 脚本,它将文件下载到名为“logs”的文件夹中以供短时间查看,并且在一天结束时删除它们。

我尝试过的:

rm -rfd logs | at 6pm

什么不起作用:

上面的代码在rm通过管道传输到命令之前执行命令at,并且我从未看到我下载的文件。

答案1

命令

rm -rfd logs | at 6pm

执行rm -rfd logs 立即地,并将其标准输出(可能没有)传输到at 6pm.

相反,您需要将字符串输出rm -rfd logs到标准输出 - 这些方法中的任何一种都可以:

  1. 键入at 6pm,然后点击ENTER,然后键入rm -rfd logs,再次点击ENTER,然后CTRL+D

     $ at 6pm
     warning: commands will be executed using /bin/sh
     at> rm -rfd logs
     at> <EOT>
     job 13 at Wed May 13 18:00:00 2020
    
  2. 与上面类似,但使用这里的文档

     at 6pm <<END_AT
     rm -rfd logs
     END_AT
    
  3. 一个简单的echoprintf

     printf -- 'rm -rfd logs' | at 6pm 
    

答案2

相关内容