gpt4 book ai didi

unix - 从shell中的文件递归删除文件名后缀

转载 作者:行者123 更新时间:2023-12-01 13:05:27 25 4
gpt4 key购买 nike

当我们在本地开发时,我们将“.dev”或“.prod”附加到应该分别只对开发/生产服务器可用的文件。

我想做的是;将站点部署到服务器后,递归查找所有带有“.dev”后缀的文件(例如)并将其删除(重命名文件)。我将如何着手执行此操作,最好完全在 shell 中(没有脚本),以便我可以将其添加到我们的部署脚本中?

我们的服务器运行 Ubuntu 10.04。

最佳答案

试试这个(不完全是 shell-only,需要 findmv 实用程序):

find . '(' -name '*.dev' -o -name '*.prod' ')' -type f -execdir sh -c 'mv -- "$0" "${0%.*}"' '{}' ';'

如果您有 renamexargs 实用程序,您可以大大加快速度:

find . '(' -name '*.dev' -o -name '*.prod' ')' -type f -print0 | xargs -0 rename 's/\.(dev|prod)$//'

两个版本都可以使用任何文件名,包括包含换行符的文件名。

关于unix - 从shell中的文件递归删除文件名后缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3414793/

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