检查新上传的文件并在 bash 脚本中重定向其他文件中的文件数据?



我有一个脚本,可以在目录中创建任何新文件时获取邮件通知。

现在我想重定向上传的另一个文件中的数据。

下面是创建空白文件的脚本。 请帮忙。

#!/bin/bash
monitor_dir="/home/deepak/deepak/" || "/home/deepak/deepak/ "
email=deepaksharma@gmai.com
files=$(find "$monitor_dir" -maxdepth 1 | sort)
IFS=$'n'
while true
do
sleep 1s
newfiles=$(find "$monitor_dir" -maxdepth 1 | sort)
added=$(comm -13 <(echo "$files") <(echo "$newfiles"))
[ "$added" != "" ] &&
find $added -maxdepth 1 -printf '%Tct%st%pn' |   mail -s "incoming" "$email"
files="$newfiles"
echo $files
sleep 70s;
read $files
if [  -s /home/deepak/deepak/$files ] || [ -s /home/deepak/deepak/ $files  ]
then
echo "$files found"
cat /home/deepak/deepak/$files >/home/deepak/N || cat /home/deepak/deepak/ $files >/home/deepak/N
else
echo "$files not found"
fi
exit 0
done   

@Yuvi,检查$files变量的tehe内容。它是否包含每个文件的完整路径?如果是这种情况,您获得空白文件的原因可能是因为"源"文件不存在。

例如

如果$files

的值为/home/deepak/deepak/file1.txt/home/deepak/deepak/file2.txt,那么当您在echo "$files found"之后执行cat时,您将对不存在的文件执行此操作:/home/deepak/deepak//home/deepak/deepak/file1.txt/home/deepak/deepak//home/deepak/deepak/file2.txt

如果是这种情况,您可以通过删除前导路径来解决您的问题:cat $files >/home/deepak/N...

最新更新