Linux
在 bash 中的一個命令上查找文件並重命名
如何在 RHEL 7 伺服器中找到文件並重命名?這可以在一個命令中完成嗎?
例如,我可以:
find . -name filename
然後
cd
到目錄然後mv filename.conf filename2.conf
,但我想在一行中完成所有這些。
您可以使用該
execdir
標誌。find . -type f -name <original_file_name> -execdir mv {} <new_file_name> \;
如果要重命名
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}``.conf
是一個 shell 參數擴展並從文件名中刪除後綴2.conf
將新後綴添加到文件名如果您想在執行命令之前對其進行測試,請添加
echo
如下內容:find . -name "*.conf" -type f -exec sh -c 'echo mv "$1" "${1%.conf}2.conf"' sh {} \;