我正在运行一个Bash脚本,将文件上传到sftp位置。但是,在上传文件之前,我需要检查sftp目录和子目录是否存在。如果存在,则上传文件;如果不存在,则创建目录和子目录,然后上传文件。我该如何实现?
mkdir -p
在sftp中不起作用。不幸的是ssh访问被禁用。我已经尝试过:
for i in `ls -1t | head -1`
do
echo $i
zip -r $i_file.zip $i
sleep 2
sshpass -p "passowrd" sftp -oPort=22 username@sftpserver <<< $'cd /file \n mkdir file1/file2/file3 \n cd /file1/file2/file3 \n put '$I_file.zip''
done
答案 0 :(得分:0)
首先,检查目录是否存在(如果不尝试此操作),我不使用sftp客户端播放该目录,因为我也是新手,但可以尝试一下。我很想听听您的反馈或其他任何人的反馈。
#!/bin/bash
path="$1"
if [ ! -d "$path" ]
then
IFS='/' # space is set as delimiter
read -ra ADDR <<< "$path" # str is read into an array as tokens separated by IFS'
cdir="$PWD"
for i in "${ADDR[@]}"; do # access each element of array
cdir+="/$i"
mkdir "$cdir"
done
fi
答案 1 :(得分:0)
我已经尝试过:
$i_file.zip
${i}_file.zip
-如果要将标识符字符附加到变量扩展中,则必须包含名称:cd /file \n mkdir file1/file2/file3 \n cd /file1/file2/file3 \n
。cd /file1 \n mkdir file2 \n mkdir file2/file3 \n cd file2/file3 \n
-您更改为 / file ,(尝试)创建 / file / file1 / file2 / file3 ,然后尝试更改为 > / file1 / file2 / file3 。也许您是说$I_file.zip
。I
-您使用大写字母i
代替大括号${i}_file.zip
,用大括号<form class="main__form" [formGroup]="registrationForm" (ngSubmit)="formSubmit()">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<input type="text" class="form-control" id="firstName" aria-describedby="firstName" placeholder="John" required name="accountName" formControlName="accountName">
<label for="firstName">Account Name*</label>
</div>
</div>
<button type="submit" [disabled]= "!registrationForm.valid" ><span> Submit Now!</span></button>
</div>
</form>
。