【发布时间】:2012-07-19 03:17:07
【问题描述】:
我正在使用 Bash FTP 命令来 ftp 文件,但是我有一个问题,我尝试创建一个超过 2 个文件夹深的目录。如果我使用两个深度文件夹,它可以工作,但如果我深入三个文件夹,那么它会失败。例如:
mkdir foo/bar - this works
mkdir foo/bar/baz - this fails
我也试过这个:
mkdir -p foo/bar/baz - which didn't work, it ended up creating a '-p' directory
我尝试运行的 shell 脚本实际上非常简单,但是您可以看到目录结构有 3 个文件夹深,并且无法创建所需的文件夹:
#!/bin/bash
DIRECTORY="foo/bar/baz"
FILE="test.pdf"
HOST="testserver"
USER="test"
PASS="test"
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASS
mkdir $DIRECTORY
cd $DIRECTORY
binary
put $FILE
quit
END_SCRIPT
【问题讨论】:
-
Bash 没有
ftp命令 -ftp是一个外部实用程序,它非常不安全。使用其他内容,例如sftp。 -
您是否有示例说明如何使用 sftp 代替 ftp?我还能用同样的方式指定用户名和密码吗?
-
不,您应该使用密钥文件。顺便说一句,
sftp也是一个外部实用程序。见man sftp。 -
你确定我可以用这个
sftp指定深度超过 3 个文件夹的目录吗?