xargs与mv结合使用出错

小班得瑞 2017-09-12 11:30:05
假设当前目录有个目录名叫vehicle
vehicle的目录里还有个目录名也叫vehicle,即存在./vehicle/vehicle
目录./vehicle/vehicle里有40W+的文件,我现在想把./vehicle/vehicle里的图片mv到/vehicle里
使用了如下的方法:
1.首先cd vehicle/vehicle
2. mv *.* ../
出错,显示argument list too long: mv
百度了一下,改用xargs + mv的方法,如下
ll | xargs -i mv {} ../
显示一大堆相同的错误,如下

mv: invalid option -- 'r'
Try: 'mv --help' for more information
mv: invalid option -- 'r'
Try: 'mv --help' for more information
mv: invalid option -- 'r'
Try: 'mv --help' for more information
mv: invalid option -- 'r'
Try: 'mv --help' for more information
...

我现在想实现把,/vehicle/vehicle里的40W个文件mv到./vehicle,请问怎么用命令实现
...全文
2377 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomisxaver 2018-01-11
  • 打赏
  • 举报
回复 1
楼主的方法是ok的,只是为什么要用 ll 这个命令呢,他输出太多信息了,而不是仅仅只有文件名,所以mv不识别这些信息。 正确的是用ls 即 ls | xargs -i mv {} ../ 就能搞定了!
曹宇飞丶 2017-09-13
  • 打赏
  • 举报
回复
不能使用 mv ./vehicle/vehicle/* ./vehicle/ 绝对路径?
小班得瑞 2017-09-13
  • 打赏
  • 举报
回复
引用 1 楼 loneking2001 的回复:
如果 vehicle 目录下文件较少
mv ./vehicle/vehicle ./tmp
mv ./vehicle/* ./tmp/
rm ./vehicle
mv ./tmp ./vehicle
如果 vehicle 目录下文件更多
rsync -av --remove-source-files ./vehicle/vehicle ./
vehicle目录下文件有1W3,我想请问能否借助xargs实现功能
rayw0ng 2017-09-12
  • 打赏
  • 举报
回复
如果 vehicle 目录下文件较少
mv ./vehicle/vehicle ./tmp
mv ./vehicle/* ./tmp/
rm ./vehicle
mv ./tmp ./vehicle
如果 vehicle 目录下文件更多
rsync -av --remove-source-files ./vehicle/vehicle ./

18,828

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧