工作正常:
==> 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 找出哪些文件已经存在。