我已经创建了一个脚本/home/普拉斯塔目录。我在里面创建了另一个目录/home/普拉斯塔命名的测试目录。我里面有多个文件/home/prashast/测试目录。运行脚本时/home/普拉斯塔目录不影响其中的文件/home/prashast/测试目录。
#!/bin/bash
for f in $(ls /home/prashast/TestDirectory/); do
mv "$f.txt" "$f.text";
done
答案1
不解析ls
结果,请改用此代码。
for f in /home/prashast/TestDirectory/*; do
echo mv "$f" "${f%.*}.text";
done
我们${f%.*}
使用的是一个shell参数扩展表达式(cut-up-to-first-suffix);从末尾开始剥离到文件名的开头,直到第一次.
看到为止。
阅读有关章节Bash shell 参数扩展了解更多。