首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用find +xargs移动文件: target不是目录吗?

用find +xargs移动文件: target不是目录吗?
EN

Unix & Linux用户
提问于 2013-07-20 00:43:43
回答 1查看 21.9K关注 0票数 10

当我运行以下命令时:

代码语言:javascript
复制
> mkdir some_dir
> find /foo/bar/ -name '*.csv' -print0 | xargs -0 mv {} some_dir

我有几百行台词说:

代码语言:javascript
复制
mv: target `/foo/bar/XX.csv` is not a directory

为什么?我以为xargs会执行:

代码语言:javascript
复制
mv /foo/barXX.csv some_dir

对于find找到的每一个文件。到底怎么回事?顺便说一下,这是和zsh一起的

更新:

Update1:

我试过:

代码语言:javascript
复制
find /foo/bar/ -name '*.csv' -print0 | xargs -0 mv {} -t some_dir

但我有几句台词:

代码语言:javascript
复制
mv: cannot stat `{}': No such file or directory

尽管我认为命令正在正确地移动我的文件。

Update2:

单独使用-t时,我似乎不需要使用mv选项。例如

代码语言:javascript
复制
> touch file1.txt
> touch file2.txt
> mkdir my_dir
> mv  file1.txt  file2.txt  my_dir

效果很好。为什么我在使用-t时需要xargs

EN

回答 1

Unix & Linux用户

发布于 2015-03-04 11:11:30

您还可以使用ls命令而不是find命令:

代码语言:javascript
复制
ls /foot/bar/*.csv | xargs  mv -t some_dir
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/83711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档