gpt4 book ai didi

linux - 如何重命名 Linux CentOS 7 上的所有(子)目录和文件

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

如何重命名 Linux CentOS 7 上的所有(子)目录和文件?我尝试了这个命令,但它不起作用:

find Files -depth | xargs -n 1 rename -v ‘s/(.*)\/([^\/]*)/$1\/\L$2/’ {} \;

最佳答案

第一个问题:您在 xargs 操作中使用了智能引号,即命令:

xargs -n 1 rename -v ‘s/(.*)\/([^\/]*)/$1\/\L$2/’ {} \;

永远不会起作用。智能引号是 shell 中的无效字符。 {}\; 的存在似乎表明您正在重新执行 find -exec,在本例中完全不需要,因此 xargs 可以替换为:

xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/'

出于测试目的添加 -n ,它会在我的文件系统上的文件上显示一堆上位 -> 下位重命名,因此它现在看起来确实在做正确的事情。

我建议的重写:

find Files -depth -print0 | xargs -0 -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/'

应该完成您正在尝试的任务,并尝试避免涉及包含空格的文件的问题。

没有-print0/-0,如果我这样做:

touch "common/this is EVIL"

然后操作将显示它不会重命名该文件,而如果我使用 -print0/-0 它显示:

rename(common/this is EVIL, common/this is evil)

关于linux - 如何重命名 Linux CentOS 7 上的所有(子)目录和文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56493861/

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