2016-02-19 232 views
0

有一个连接文件并将文件放入ftp服务器的shell脚本。 现在试图从ftp服务器上的相同目录中删除2天以前的旧文件。 试图使用find命令,但获取?invalid命令 找到./*.txt -mtime +2 -exec rm {} \;用于删除ftp服务器上x天以前的文件的shell脚本

...... 
ftp -nv <<! >> $FTP_LOG 2>> $FTP_LOG 

open xxx 
user userid pwd 

lcd $FILES_DIR 

cd /yyy 

put $File1 $File1 
put $File2 $File2 

find ./*.txt -mtime +2 -exec rm {} \; 

quit 
! 
...... 

我还能试试什么?需要帮助。

+1

'find'命令是一个shell脚本命令,而不是'ftp'命令。标准的'ftp'客户端仅支持非常狭窄的命令选择。在'ftp'脚本中没有办法编写脚本。也许看一下像'lftp'或'ncftp'这样功能更强大的客户端,或者编写一个包装器来下载所有文件的列表,在本地处理它,并生成一个DELE命令列表以提交回服务器。 – tripleee

+0

看看你是否可以通过'ssh'而不是'ftp'访问。这会给你一个shell,你可以在其中执行你的'find'命令。 –

回答

0

我遇到了同样的错误,在使用ftp时,某些linux版本无法识别 字符“*”,将其替换为特定的一个。

相关问题