scp 包含要复制到、从或在不同主机之间复制的一系列文件

scp 包含要复制到、从或在不同主机之间复制的一系列文件

工作正常:

==> scp my_log-bin.01393[0-9] [email protected]:/backup/  

错误-没有这样的文件或目录:

==> scp my_log-bin.0139[30-99] [email protected]:/backup/ 

答案1

提取将由你的 shell 处理。

如果你的 shell 是 bash,[]匹配任意一个括起来的字符且不[30-99]匹配两个字符。

那么如何使用下面的方法呢:

scp my_log-bin.0139[3-9][0-9] [email protected]:/backup/

答案2

除了 [0-9] 之外,您还可以使用花括号和 .. 符号。

scp my_log-bin.0139{30..99} [email protected]:/backup/

答案3

[30-99]在 shell 模式 ("glob") 表示法中, 表示“ 3,或 范围内的数字0-9,或9”,即,它与 相同[0-9]

你想要的是

# build list of files; note, won't work when filename contains a space or colon
files=""
for i in `seq 30 99`; do
    files="$files my_log-bin.$i"
done

scp $files [email protected]:/backup/

答案4

shell问题已经处理好了,但如果根本问题是只复制新文件,那么我使用rsync解决了这个问题:

rsync --progress -tvprogul my_log-bin.* [email protected]:/backup/

并让 rsync 找出哪些文件已经存在。

相关内容