目前,我有一个名为 MY-SHARED 的目录,我需要发生以下情况:
- 打印我放入 MY-SHARED 的所有 PDF 文件
- 打印必须自动启动(无需人工干预)
- 打印后应自动删除文件
我怎样才能完成这样的任务?
顺便说一句,我是 Ubuntu 世界的新手。
答案1
安装包
inoticoming
sudo apt-get install inoticoming
安装该包
trash-cli
以使用垃圾文件夹,而不是删除 PDFsudo apt-get install trash-cli
如果你更喜欢通过传统的方法删除文件
rm
,那么你不需要这个包,你必须用下面的代码替换lpr "$2/$1" && trash "$2/$1"
和
lpr "$2/$1" && rm "$2/$1"
在下面的脚本中。
创建包装器脚本
printpdf
mkdir -p ~/bin gedit ~/bin/printpdf
添加以下代码,保存文件并关闭编辑器
#!/usr/bin/env bash FILE="$1" if [ "${FILE##*.}" = "pdf" ] then lpr "$2/$1" && trash "$2/$1" fi exit 0
使脚本可执行
chmod +x ~/bin/printpdf
查看你的文件夹
inoticoming /path/to/MY-SHARED ~/bin/printpdf {} /path/to/MY-SHARED \;
并作为@Rmano在评论中说
关于第 4 点,请注意,几乎不可能确定文件是否已打印。您可以检查它是否已发送到打印机,但打印要复杂得多,而且实际上永远无法确保万无一失(并且可能依赖于打印机)。
答案2
谢谢你,那效果非常好。特别是如果你把它作为 cronjob 来激活inoticoming
,它甚至可以打印各种图片和 PDF。
#!/usr/bin/bash
FILE="$1"
if [ "${FILE##*.}" = "jpg" ]
then
lpr "$2/$1" && rm "$2/$1"
elif [ "${FILE##*.}" = "jpeg" ]
then
lpr "$2/$1" && rm "$2/$1"
elif [ "${FILE##*.}" = "png" ]
then
lpr "$2/$1" && rm "$2/$1"
elif [ "${FILE##*.}" = "pdf" ]
then
lpr "$2/$1" && rm "$2/$1"
elif [ "${FILE##*.}" = "svg" ]
then
lpr "$2/$1" && rm "$2/$1"
else
echo "finish"
fi
exit 0