【发布时间】:2017-10-22 15:18:47
【问题描述】:
我正在使用 Linux 重命名命令行工具递归搜索目录以重命名任何目录以及它找到的文件。我遇到的问题是 rename 命令将重命名文件的子目录,然后尝试重命名同一文件的父目录。这将失败,因为子目录已被重命名,导致“没有这样的文件或目录”
命令:
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
您可以从错误消息中看到它正在尝试重命名父目录,但此时子目录已经更改,导致找不到文件错误。是否有 rename 命令的参数可以解决这个问题,还是我需要以不同的方式解决这个问题?
【问题讨论】:
-
SO 是针对编程问题,而不是关于使用 Unix 工具的问题。 Unix.stackexchange.com 或 SuperUser.com 会更合适。