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

在dir下有多个目录和其他文件,然后*.gz,我想移动find与smbclient找到的文件。当然,这是行不通的,因为我错过了最后一点。连接到分享作品,和find作品,它只是最后一点没有。有任何想法吗?查找特定文件并使用smbclient移动它们

回答

1

您可以使用xargs从输入流

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

创建参数如果我理解正确的话要在本地移动的文件,除了通过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 
+0

嗨,感谢您的意见。虽然我似乎无法得到实际的工作,但smbclient只是“放” – user2323684 2013-04-30 08:49:50

+0

set -e#< - 在错误 中为f找到/ find/opt/backup/test -name'* .gz''中止;做 的smbclient -A /opt/backup/smbclient_authentication.txt //1.1.1.1/test -c “提出$ F” 做 给我:NT_STATUS_OBJECT_NAME_INVALID打开远程文件\ /opt/backup/test/asdasdas.gz – user2323684 2013-05-06 10:12:40

+0

我也试过这个: echo' - 更新客户端文件夹 - ' smbclient -U $ user%$ pwd // $ targetIP/$ sharedDirRoot -c“cd $ targetDir; lcd $ linuxSourceDir; prompt off; recurse; mput *;” echo' - 远程客户端已更新 - ' 但mput占用全部或全部,使用mput * .gz f.ex – user2323684 2013-05-06 12:02:03

相关问题