Linux 如何使用find重命名同名的不同目录中的文件
我在不同的目录中有名为Linux 如何使用find重命名同名的不同目录中的文件,linux,shell,command-line,terminal,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您的想法是正确的,但是您需要使用-execdir而不仅仅是-exec来简化这个过程 find . -type f -iname 'test.txt' -execdir mv
test.txt
的文件,如下所示
./222/test.txt
./111/test.txt
我想将所有test.txt
重命名为info.txt
我试过用这个
find . -type f -iname 'test.txt' -exec mv {} {}info \;
我得到了
test.txtinfo您的想法是正确的,但是您需要使用-execdir
而不仅仅是-exec
来简化这个过程
find . -type f -iname 'test.txt' -execdir mv {} info.txt ';'
这类似于-exec
,不同之处在于执行给定的shell命令时,找到的路径名的目录作为其当前工作目录,而{}
将包含找到的路径名的基本名称,而不包含其路径。还请注意,该选项是非标准选项(不符合POSIX)。您的想法是正确的,但您需要使用-execdir
而不仅仅是-exec
来简化此过程
find . -type f -iname 'test.txt' -execdir mv {} info.txt ';'
这类似于-exec
,不同之处在于执行给定的shell命令时,找到的路径名的目录作为其当前工作目录,而{}
将包含找到的路径名的基本名称,而不包含其路径。还要注意,该选项是非标准选项(不符合POSIX)