如何在 RHEL 7 服务器中找到文件并重命名它?这可以通过一个命令完成吗?
例如,我可以:
find . -name filename
然后cd
到目录 then mv filename.conf filename2.conf
,但我想在一行中完成这一切。
答案1
您可以使用该execdir
标志。
find . -type f -name <original_file_name> -execdir mv {} <new_file_name> \;
答案2
如果您想重命名file.conf
为file2.conf
,请使用find
以下-exec
选项:
find . -name "*.conf" -type f -exec sh -c 'mv "$1" "${1%.conf}2.conf"' sh {} \;
每个文件名都{}
作为参数传递$1
给一个新的 shell 进程,该进程以执行命令的-exec
选项启动。mv
${1%.conf}
是 shell 参数扩展并.conf
从文件名中删除后缀2.conf
将新后缀添加到文件名中
如果您想在执行命令之前对其进行测试,请echo
在其中添加一个,如下所示:
find . -name "*.conf" -type f -exec sh -c 'echo mv "$1" "${1%.conf}2.conf"' sh {} \;