gpt4 book ai didi

sftp - 复制时重命名文件

转载 作者:行者123 更新时间:2023-12-04 05:49:44 25 4
gpt4 key购买 nike

在我们的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com