如何使用find重命名具有相同名称的不同目录中的文件

时间:2019-05-04 15:44:47

标签: linux shell command-line terminal

我在这样的不同目录中有名为test.txt的文件

./222/test.txt
./111/test.txt

我想将所有test.txt重命名为info.txt

我尝试使用此

find . -type f -iname 'test.txt' -exec mv {} {}info \;

我得到test.txtinfo

1 个答案:

答案 0 :(得分:2)

您的想法是正确的,但是您需要使用-execdir而不是仅仅使用-exec来简化此过程。

find . -type f -iname 'test.txt' -execdir mv {} info.txt ';'

这与-exec相似,不同之处在于给定的shell命令以找到的路径名的目录作为当前工作目录执行,而{}将包含找到的路径名的基名而不包含它。路径。还要注意,该选项是非标准选项(不符合POSIX)。