我对linux的使用非常新,也许这是我的第一次,所以我希望得到一些详细的帮助.我的服务器(Linux)上的多个目录中有超过500个文件我想使用bash脚本将其扩展名更改为.xml我使用了大量代码,但它们都没有使用我使用的一些代码:
for file in *.txt
do
mv ${file} ${file/.txt}/.xml
done
Run Code Online (Sandbox Code Playgroud)
要么
for file in *.*
do
mv ${file} ${file/.*}/.xml
done
Run Code Online (Sandbox Code Playgroud)
我不知道即使第二个是有效的代码,我试图改变txt扩展名beacuse提示说没有这样的文件'.txt'
我希望有一些好的帮助,谢谢你
>=4并启用**(即globstar);.txt,该字符串必须锚定在文件名(%)的末尾:# 模式(普通单词或glob)锚定到开头,%锚定到最后..xml这应该在Bash(注意我只有echo旧的/新的文件名,实际上重命名文件,mv而不是使用echo):
shopt -s globstar # enable ** globstar/recursivity
for i in **/*.txt; do
[[ -d "$i" ]] && continue; # skip directories
echo "$i" "${i/%.txt}.xml";
done
Run Code Online (Sandbox Code Playgroud)