sftp - 复制时重命名文件

标签 sftp scp file-rename

在我们的 unix 服务器中,'myfolder' 包含许多按日期附加的存档文件夹

archive.2012-04-10
archive.2012-04-11

每个存档文件夹都包含一个压缩文件,如下所示

my_transaction.log-20120410.gz

我知道下面的命令将复制 my_transaction.log-20120410.gz、my_transaction.log-20120411.gz 和 my_transaction.log-20120412.gz 并将其放在“serverip”服务器下的/tmp 文件夹下。

scp /myfolder/archive.2012-04-1[0-2]/my_transaction* username@serverip:/tmp

我的问题分为两部分

1)如果我想复制 my_transaction.log-20120409.gz 以及上面的内容,一行命令是什么?

2)复制和重命名/tmp 文件夹下的复制文件的命令是什么。也就是说,它应该如下复制到/tmp 下。我想在复制到“serverip”/tmp 文件夹时添加带有事务的 _1。

my_transaction_1.log-20120409.gz
my_transaction_1.log-20120410.gz
my_transaction_1.log-20120411.gz
my_transaction_1.log-20120412.gz

最佳答案

对于第一点,尝试extended globbing : (未经测试)

# This could go in your ~/.bashrc
shopt -s extglob
scp /myfolder/archive.2012-04-@(09|1[0-2])/my_transaction* username@serverip:/tmp

对于第二点,我不认为你可以同时对所有文件进行 scp 和重命名。不过,您可以循环完成所有这些操作。例如。 (也未经测试)

for file in /myfolder/archive.2012-04-@(09|1[0-2])/my_transaction*; do
    newfile=$( echo $file | sed -e "s/my_transaction/my_transaction_1/")
    # Take out the "echo" if the command looks OK
    echo scp $newfile username@serverip:/tmp
done

关于sftp - 复制时重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10226017/

相关文章:

linux - 难以解决:- “SCP copies files successfully, but files not visible in local computer”

Powershell - 复制后重命名文件

delphi - 带有 ipv6 源的 SFTP 客户端

.net - 使用 WinSCP .NET 的方法未找到异常 (EventWaitHandle..ctor)

python - 事务性 SCPing 到 python 中的多个服务器

Java重命名类在运行时不断删除随机图片

java - 在 for 循环中重命名文件时出错

c++ - 如何在 WHM/cPanel 上为 cgi-bin 上传和编译 cpp?

python - 需要运行 python sftp 服务器

PHP ssh2_scp_send 文件权限