我有一个列表文件File_Transfer_List.txt
,其中包含要执行 scp 的文件列表
我的要求是我需要对列表文件中给出的文件执行 scp,然后从源位置删除这些文件。
我试过这个:
scp File_Name user@server:/destination && rm File_Name ;
Run Code Online (Sandbox Code Playgroud)
我无法测试它,我没有准备好我的 scp 来测试它;如果我错了,任何人都可以纠正我。
您在此处有两个要求(来自文件列表的文件和删除源文件),强烈要求使用rsync
.
根据您的文件列表包含的内容(相对或绝对路径、备份路径等),您可以执行以下操作:
rsync --files-from=filelist.txt --remove-source-files -avz \
. user@remotehost:/path/to/backup/folder
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,您有一个包含文件名的文件,并且您希望将每个文件复制到远程服务器,并在复制成功时删除本地文件。如果是这样,您可以这样做:
while IFS= read -r file; do
scp -- "$file" user@remote.com:/remote/path && rm -- "$file"
done < files.txt
Run Code Online (Sandbox Code Playgroud)