在 Linux 中查找并重命名第一个结果?

在 Linux 中查找并重命名第一个结果?

我已尝试使用这个命令行。

find *.txt | head -1 | xargs -0 mv *.txt test.txt

我收到。

mv:目标“02.txt\n”不是目录

出了什么问题 :(?

答案1

尝试一下这个:

find -name '*.txt' -print0 | head -z -1 | xargs -0 -I '{}' mv '{}' test.txt

哪里出了问题以及为什么应该这样做:

  • 如果你传递了所有应该找到的内容,那么使用 find 就没有意义了
  • 如果对管道中的任何内容使用空分隔符,则需要对管道中的所有内容使用它们
  • 您使用的 xargs 没有用*.txt找到的文件的名称替换

相关内容