smbclient 脚本将多个文件放入变量
smbclient script putting several files with variable
我想使用 smbclientscript 将包含 pdf 文件的整个目录放在另一台服务器上。我的脚本:
#Set variable for reports
variable=`ls | grep pdf`
smbclient -U "server\user"%pw //some/direc/tory/bla/bla << Commands
cd to/another/dir
put $variable
exit
Commands
确实可以,但问题是它只能复制listet bei ls的第一个文件| grep.pdf
对于其他文件,shell 响应为 file:command 未找到。
在bash
variable=`ls |grep pdf`
将获得带有 STDOUT 的字符串变量,而不是数组。这不是你想要的。
也许xargs
会对您有所帮助。你可以按照下面的方式做,但我认为这不是一个优雅的解决方案。
ls | grep '.pdf$' |xargs -I{} smbclient -U "server\user"%pw //some/direc/tory/bla/bla -D 'to/another/dir' -c "{}"
我自己找到了解决方案:
cd /directory/with/files/to/copy
#Set Variable
reports=$(ls *)
for i in $reports ; do
smbclient -U "srv\User"%pws //some/dir/bla/bla/bla << Commands
cd another/dir/etc
put $i
exit
Commands
done
谢谢!
我想使用 smbclientscript 将包含 pdf 文件的整个目录放在另一台服务器上。我的脚本:
#Set variable for reports
variable=`ls | grep pdf`
smbclient -U "server\user"%pw //some/direc/tory/bla/bla << Commands
cd to/another/dir
put $variable
exit
Commands
确实可以,但问题是它只能复制listet bei ls的第一个文件| grep.pdf 对于其他文件,shell 响应为 file:command 未找到。
在bash
variable=`ls |grep pdf`
将获得带有 STDOUT 的字符串变量,而不是数组。这不是你想要的。
也许xargs
会对您有所帮助。你可以按照下面的方式做,但我认为这不是一个优雅的解决方案。
ls | grep '.pdf$' |xargs -I{} smbclient -U "server\user"%pw //some/direc/tory/bla/bla -D 'to/another/dir' -c "{}"
我自己找到了解决方案:
cd /directory/with/files/to/copy
#Set Variable
reports=$(ls *)
for i in $reports ; do
smbclient -U "srv\User"%pws //some/dir/bla/bla/bla << Commands
cd another/dir/etc
put $i
exit
Commands
done
谢谢!