查找特定文件并使用smbclient移动它们

时间:2013-04-26 11:58:00

标签: bash

$ find /opt/backup/test -name "*.gz" -exec smbclient -A \
/opt/backup/smbclient_authentication.txt //1.1.1.1/test -c put '{}' \;

目录下有多个目录和其他文件*.gz,我想用smbclient移动找到的文件。当然,这不起作用,因为我错过了最后一点。与共享的连接有效,find有效,这只是最后一点没有。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用xargs从输入流

创建参数
xargs find /opt/backup/test -name "*.gz" \
    | smbclient -A /opt/backup/smbclient_auth.txt //1.1.1.1/test -c put 

如果我理解正确,除了传输via smb之外,你想在本地移动文件。你可以:

set -e  #<- abort on error
for f in `find -name '*.gz' -or -name '*.zip'`; do 
    smbclient -A /opt/backup/smbclient_auth.txt //1.1.1.1/test -c put "$f"
    mv "$f" ./transfered/
done