You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solaris系统下读取文件列表移动文件的Shell命令求助(新手)

解决Solaris下读取文件列表移动文件的问题

嘿,作为Shell新手在Solaris上折腾确实容易踩小坑,我来帮你搞定这个移动文件的问题~

你之前写的mv /path/ 'cat filelist.txt' /path2/dest/有个小问题:单引号会把cat filelist.txt当成一个固定的文件名,而不是执行这个命令去读取filelist.txt里的内容,所以Shell会去找名为cat filelist.txt的文件,自然会报错啦。

针对你说的filelist.txt仅含单个文件名的情况,这里提供几个可行的命令:

基础正确写法

用命令替换让Shell先执行cat filelist.txt获取文件名,再拼到路径里:

mv "/path/$(cat filelist.txt)" /path2/dest/

如果你的Solaris系统用的是较老的Shell(比如原始的sh),反引号的兼容性更好:

mv "/path/`cat filelist.txt`" /path2/dest/

这里加双引号是为了防止文件名里有空格、特殊字符时被Shell错误拆分,更稳妥。

处理可能的空白字符

如果filelist.txt里不小心多了换行、空格或者制表符,可以用工具先清理掉这些无关字符:

# 用awk提取纯文件名(自动忽略多余换行)
mv "/path/$(awk '{print $0}' filelist.txt)" /path2/dest/

或者用sed精准去除前后空白:

mv "/path/$(sed 's/^[[:space:]]*//;s/[[:space:]]*$//' filelist.txt)" /path2/dest/

额外提醒

  • 确保目标路径/path2/dest已经存在,如果没有可以先执行mkdir -p /path2/dest/创建(-p参数会自动创建多级目录)
  • 可以先测试一下命令是否正确,比如用echo代替mv,看看输出的路径是否符合预期:echo "/path/$(cat filelist.txt)"

内容的提问来源于stack exchange,提问作者Raghav Rao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:18:35