gpt4 book ai didi

linux - 使用rename重命名文件和目录

转载 作者:太空宇宙 更新时间:2023-11-04 05:19:13 24 4
gpt4 key购买 nike

我正在使用 Linux 重命名命令行工具递归搜索目录,以重命名任何目录及其找到的文件。我遇到的问题是重命名命令将重命名文件的子目录,然后尝试重命名同一文件的父目录。这将失败,因为子目录已被重命名,导致“没有这样的文件或目录”

命令:

rename -f 's/foo/bar/' **
rename -f 's/Foo/Bar/' **

例如,这是一个原始文件,我想将“foo”替换为“bar”

文件:

/test/foo/com/test/foo/FooMain.java

失败:

Can't rename /test/foo/com/test/foo/FooMain.java /test/bar/com/test/foo/FooMain.java: No such file or directory

首选文件:

/test/bar/com/test/bar/BarMain.java

您可以从错误消息中看到它正在尝试重命名父目录,但此时子目录已更改,导致文件未找到错误。重命名命令是否有参数可以解决此问题,或者我是否需要以不同的方式解决此问题?

最佳答案

使用 find + execdir 选项:

$ find . -execdir rename "s/foo/bar/" {} \;
$ find . -execdir rename "s/Foo/Bar/" {} \;

关于linux - 使用rename重命名文件和目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44121788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com