我是bash脚本编写新手,我必须编写一个脚本来查找目录中最新的.mpg文件,然后将它发送到ftp服务器。到目前为止,我找到了找到我的文件的命令。查找文件并将其发送到ftp
#! /bin/bash
find /home/user/directory -type f -mmin -50 -name *.mpg \(! -regex ".*/\..*" \)
这个工程,但我不知道如何发送该命令的输出到FTP服务器。我读过我必须使用变量,但到目前为止我无法理解它们。
我是bash脚本编写新手,我必须编写一个脚本来查找目录中最新的.mpg文件,然后将它发送到ftp服务器。到目前为止,我找到了找到我的文件的命令。查找文件并将其发送到ftp
#! /bin/bash
find /home/user/directory -type f -mmin -50 -name *.mpg \(! -regex ".*/\..*" \)
这个工程,但我不知道如何发送该命令的输出到FTP服务器。我读过我必须使用变量,但到目前为止我无法理解它们。
使用可以通过管道从一个命令的输出作为输入到另一个|
find /home/user/directory -type f -mmin -50 -name *.mpg \(! -regex ".*/\..*" \) | ftp ...
更简单的方法来找到最新的MPG文件:
ls -rt /home/user/directory/*.mpg | head -1 | ftp ...
如果你想发送多个文件xargs将需要,即对于5个最新文件
ls -rt /home/user/directory/*.mpg | head -5 | xargs ftp ...
ls
列出/home/user/directory/*.mpg
中的文件,其中*
被扩展为任何文件名,其中.mpg
被扩展。 -t
告诉ls
按时间顺序列出,-r
是反向排序,因为我们想要最新的第一个不是最古老的。命令head
仅用于显示我们想要的结果数量,如一个-1
或五个-5
。 head
通常用于查看文件中只有一定数量的行,以查看文件中的第一行,我们将运行head -1 file.txt
。
管例如:
grep
被用来搜索文件中的文本/标准输出
所以,如果你想知道,如果firefox
被包含在file.txt
第一线,我们会的head -1 file.txt
输出pipe
到grep firefox
head -1 file.txt | grep firefox
可以管多个命令一起ACHI前夕你想要的结果。
我想我必须使用find命令,因为这个脚本将在cron作业中使用,并且最新的文件将在最近50分钟内被修改。请帮我用这个“pipe to your ftp”命令。 – ispasov
我找到了我的解决方案: 查找命令是: 'find/home/user/path-to-folder/-type f -mtime -1 -name * .avi \(!-regex“。*/\ .. *” \))' FTP命令是 '的lftp -u用户名,密码your.ftp << EOF 坎德拉/ 液晶/家庭/用户/路径至夹 镜-R 退出0 EOF' – ispasov