sftp 上传 bash 忽略文件

sftp upload bash ignore files

我尝试实现一些半自动sftpupload/deployment。主键是 NOT 上传所有文件。我不知道哪些文件该上传,但我知道哪些文件不该上传。

我的 bash 脚本如下所示:

#!/bin/bash

IP="123.123.123.123"
HOSTNAME="ftp.my-host.com"
PATH="subdirectory"

sftp username@$HOSTNAME:$PATH < "sftp-pattern"

我想在 sftp-pattern 文件中存储我的 sftp 命令。但我找不到任何提示如何忽略几种模式。喜欢 *.sql

理想情况下,我会忽略所有被 gitignored 的东西。

没有有ssh连接。

由于您使用的是 shell 脚本,因此可以使用循环。像这样的东西应该有用。

#!/bin/bash

IP="123.123.123.123"
HOST="ftp.my-host.com"
DIR="/tmp/"

for f in `/bin/ls $DIR`
do
  if echo $f | /usr/bin/grep  '.sql' > /dev/null
  then
    echo SKIPPING $f
  else
   sftp username@$HOST:$DIR/$f
  fi
done

如@Clijsters 所述,答案应该是 git-ftp。它的功能更丰富,不需要摆弄循环和管道。

dwrights 解决方案虽然有效,但如果您要排除 ONLY sql。

谢谢!!