【问题标题】:xargs not functioning in linuxxargs 在 linux 中不起作用
【发布时间】:2013-05-31 14:10:52
【问题描述】:

在使用此命令选择文件后,我正在尝试使用 xargs 复制文件

grep 'string' | awk '{print $2$3}' | xargs -I {} cp {} /dir1/dir2/dir3

每个我正在复制的文件都会收到以下错误消息

cp: cannot stat `/dir1/dir2/dir3/file1.jpeg': No such file or directory

它告诉我目录正确,并告诉我找不到的问题,file1.jpeg实际上在dir3文件中,整个路由100%正确

我尝试使用echo cp,但每个文件仍然收到此消息:

cp /dir1/dir2/dir3/file1.jpeg /new/directory/

有人可以帮忙吗? -赞赏

【问题讨论】:

  • 你想把文件从 /dir1/dir2/dir3 复制到那个目录吗?
  • 是的,罗杰,实际上是多个文件
  • 你没听懂我的问题,我想问/dir1/dir2/dir3是源目录还是目的目录?
  • dir1/dir2/dir3是源目录,我复制到/new/directory
  • 你应该把 {} 放在 /dir1/dir2/dir3 之后

标签: linux command-line copy command


【解决方案1】:

您可以删除grepawk 并使用findxargs

类似这样的:

find /path/to/search/ -type f -iname "*string*" | xargs -0 cp -t /path/to/copy

您也可以使用findexec 选项并避免使用xargs

【讨论】:

  • 它实际上不是 /path/to/search,它是以前的 diff 命令的结果,我试图这样说diff folder1 folder2 | find find -type f -iname "*string*".....,我收到了这两条错误消息。查找:'./.config':权限被拒绝。 xargs: 参数行太长
猜你喜欢
  • 1970-01-01
  • 2017-06-29
  • 2011-09-30
  • 2018-11-06
  • 2017-11-05
  • 1970-01-01
  • 1970-01-01
  • 2011-12-19
  • 1970-01-01
相关资源
最近更新 更多