我在/home/prasast目录中创建了一个脚本。我在/home/prasast 中创建了另一个名为TestDirectory 的目录。我在/home/prasast/TestDirectory 中有多个文件。从/home/prasast目录运行脚本时,它不会影响/home/prasast/TestDirectory 中的文件。
#!/bin/bash
for f in $(ls /home/prashast/TestDirectory/); do
mv "$f.txt" "$f.text";
done
Run Code Online (Sandbox Code Playgroud)
不要解析ls
result,而是使用此代码。
for f in /home/prashast/TestDirectory/*; do
echo mv "$f" "${f%.*}.text";
done
Run Code Online (Sandbox Code Playgroud)
的${f%.*}
,我们使用的是壳参数扩展表达式(切口最多到第一后缀); 剥离从末尾开始,直到第一次.
看到文件名。
阅读有关Bash shell 参数扩展的章节了解更多信息。