如何以含路径列表的文件为输入,编写cp/scp单行命令(Termux环境)
单行命令实现从文件读取路径执行复制操作
针对cp命令的单行解决方案
有两种可靠的单行写法,可读取rheuma文件中的路径并执行复制:
使用
xargs(简洁高效)xargs -a rheuma cp -t /你的目标路径-a rheuma:指定从rheuma文件读取输入的路径列表-t /你的目标路径:将目标路径提前,让cp依次处理每个源文件
使用
while循环(兼容带空格/特殊字符的文件名)while IFS= read -r file; do cp "$file" /你的目标路径; done < rheumaIFS=:避免文件名中的空格被截断-r:保留文件名中的反斜杠等特殊字符"$file":用双引号包裹,防止特殊字符被shell解析
针对Termux中scp的替代方案
你之前使用的find . -mtime -1 -type f -exec scp {} /;失效,可结合生成文件列表+scp的方式实现:
先生成最近1天的文件列表到
rheuma:find . -mtime -1 -type f > rheuma再用以下单行命令执行
scp:- 用
xargs:xargs -a rheuma scp -t /你的目标路径 - 用
while循环(更稳定):while IFS= read -r file; do scp "$file" /你的目标路径; done < rheuma
- 用
注意:将命令中的
/你的目标路径替换为实际路径,比如远程服务器路径user@host:/remote/path或本地存储路径/sdcard/backup。
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

