我需要执行一个数据阶段 ETL 作业,该作业运行一个 shell 脚本,将文件从 Windows 计算机(不是文件系统)中的特定文件夹移动到 Unix 中的目录。
我现在有这样的东西
HOST=UNIX123
USER=abcd
PASSWORD=abc123
FILE_NAME="Test.txt"
ftp -v -n WINDOWS123 << end_script
user zxc/VKR XYZ
lcd /stg/scripts
cd "data"
binary
mget *.txt
quit
end_script
这里的 mget 命令只是复制文件。我想移动文件而不是副本
答案1
如果您有一个至少具有管理员共享的 Windows 盒子\\computer\c$
,并且您有一个将运行该脚本的 Linux 盒子:
挂载Windows共享读/写
mount -t cifs $network_path $mount_directory -o credentials=$cred_file
对挂载的目录执行move命令
mv "$mount_directory/*" "$new_directory"
可能需要复制然后删除文件...
cp "$mount_directory/*"
rm "$mount_directory/*"
cp
检查命令( 、mv
和)上可能需要的开关rm
。