2013-04-26 170 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

相關問題