找到文件并将其发送到ftp



我是bash脚本的新手,我必须编写一个脚本,在目录中找到最新的.mpg文件,然后将其发送到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或五个-5head通常用于只查看文件中的特定行数,要查看文件中第一行,我们将运行head -1 file.txt

管道示例:

grep用于搜索文件/stdout 中的文本

因此,如果您想知道firefox是否包含在file.txt的第一行中,我们将pipe作为head -1 file.txtgrep firefox的输出

head -1 file.txt | grep firefox

可以通过管道将多个命令连接在一起以获得所需的结果。

相关内容

  • 没有找到相关文章

最新更新