查找文件并将其发送到ftp

时间:2012-10-06 14:06:29

标签: bash shell ftp find

我是bash脚本的新手,我必须编写一个脚本,在目录中找到最新的.mpg文件,然后将其发送到ftp服务器。到目前为止,我找到了找到我的文件的命令。

#! /bin/bash

find /home/user/directory -type f -mmin -50 -name *.mpg \( ! -regex ".*/\..*" \)

这有效,但我无法弄清楚如何将该命令的输出发送到ftp服务器。我已经读过我必须使用变量,但到目前为止我无法理解它们。

1 个答案:

答案 0 :(得分:1)

使用可以将一个命令的输出作为输入传递给|

的另一个命令
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用于搜索files / stdout

中的文本

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

head -1 file.txt | grep firefox

您可以将多个命令组合在一起以获得所需的结果。