我是新来的,我想问一个关于 FTP 的问题。
我有一个FTP服务器,里面有多个文件夹,里面有PDF文件。我想知道有没有办法通过终端访问这个服务器,并通过终端删除PDF文件。
我的操作系统是 ubuntu 19.10
我使用此命令下载文件夹
wget -m --user=XXXXX --password=XXXX ftp://XXXXXXX:XXXX/
现在我只需要一个命令就可以从服务器上删除 PDF 文件。:)
答案1
要从 FTP 服务器删除文件/文件夹,请按照以下步骤操作:
- 输入
ftp
并回车以继续。 - 输入
open
并回车以继续。 - 输入ftp服务器的IP地址,然后回车,连接到ftp服务器。
- 如果已连接,请输入登录名并输入。
- 输入用户密码并输入。如果用户名和密码有效,您就可以进入。
- 键入
help
以列出您可以在 ftp 服务器上运行的所有可用命令。 - 键入
ls
以列出所有文件和目录。 - 键入
cd <folder_name>
以进入指定文件夹。 - 键入
mdelete <filename>
以删除一个或多个文件或rmdir -r <folder_name>
删除一个文件夹。 - 类型是并输入确认删除。
编辑:
出于某些安全原因,您必须输入是每次要删除文件时都要输入 。为了避免这种情况,你需要ftp -i
在开头运行(而不是ftp
)。之后,你可以直接删除文件而不必输入是对于每个文件(示例:mdelete folder_name/*
将删除 folder_name 中的所有文件)。
此外,除非文件夹为空,否则您无法删除该文件夹,因此您必须使用 删除其所有内容mdelete folder_name/*
,然后运行rmdir folder_name
以删除文件夹。
致谢: 批量删除FTP服务器中的文件
答案2
你可以使用类似下面的方法来实现自动化。[1]
它将正确连接,并且<<EOF
和之间的所有内容EOF
都将被执行。这对于自动化来说相当不错。我想这就是你强调控制台必要性的原因,对吧?
#!/bin/bash
HOST=ftp.example.com
USER=ftpuser
PASSWORD=P@ssw0rd
ftp -inv $HOST <<EOF
user $USER $PASSWORD
cd /path/to/file
bye
EOF
摘自[1]:https://blog.eduonix.com/shell-scripting/how-to-automate-ftp-transfers-in-linux-shell-scripting/