目标是使用路径在特定目录中的每个文件名前添加文本。我不希望这仅适用于当前目录,但是无论您在文件树中的何处,它都可以工作。这就是我所拥有的:
for f in `ls path/*`
do
mv "&f" "x$f"
done
它没有将其移动到带有新文件名且在x前面的相同路径,而是尝试将其移动到x / path(这显然会产生错误),而且我似乎找不到任何有关如何将x放在文件名的前面,以有效地重命名文件,在x前面。
答案 0 :(得分:1)
您可以同时使用basename
和dirname
命令:
for i in path/*; do
mv "$i" "$(dirname "$i")/x$(basename "$i")"
done
或使用bash参数扩展:
for i in path/*; do
mv "$i" "${i%/*}/x${i##*/}"
done
两个命令都在文件名前添加一个x
。