我在这样的不同目录中有名为test.txt
的文件
./222/test.txt
./111/test.txt
我想将所有test.txt
重命名为info.txt
我尝试使用此
find . -type f -iname 'test.txt' -exec mv {} {}info \;
我得到test.txtinfo
答案 0 :(得分:2)
您的想法是正确的,但是您需要使用-execdir
而不是仅仅使用-exec
来简化此过程。
find . -type f -iname 'test.txt' -execdir mv {} info.txt ';'
这与-exec
相似,不同之处在于给定的shell命令以找到的路径名的目录作为当前工作目录执行,而{}
将包含找到的路径名的基名而不包含它。路径。还要注意,该选项是非标准选项(不符合POSIX)。