似乎我无法找到这个问题的直接答案。我感谢您的帮助。我正在尝试在目录中查找具有特定名称的所有文件,读取文件的最后 1000 行并将其复制到同一目录中的新文件中。举个例子:
在当前目录中找到所有名为 xyz.log 的文件,将最后 1000 行复制到文件 abc.log(不存在)。
我尝试使用以下命令,但没有成功:
寻找 。-name "xyz.log" -execdir tail -1000 {} > abc.log \;
我遇到的问题是,对于当前目录中的所有文件,它们都写入 CURRENT 目录中的 abc.log 而不是 xyz.log 所在的目录。很明显,首先执行带有 execdir 的查找,然后将输出重定向到 abc.log。
你们能提出解决这个问题的方法吗?我感谢任何信息/帮助。
编辑-我试过 find 。-name "xyz.log" -execdir sh -c "tail -1000 {} > abc.log" \; 正如一些朋友所建议的,但它给了我这个错误:“sh:./tail:没有这样的文件或目录”错误消息。你们知道问题是什么吗?
幸运的是,使用 -printf 的解决方案运行良好。