我是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