前置到目录中的所有文件名
Prepend to all filenames in a directory
目标是使用文件路径为特定目录中的每个文件名添加文本。我不希望它仅适用于当前目录,但无论您在文件树中的哪个位置都可以使用。这是我的:
for f in `ls path/*`
do
mv "&f" "x$f"
done
它没有将它移动到具有前面带有 x 的新文件名的相同路径,而是尝试将它移动到 x/path (这显然会出错),但我似乎找不到关于如何获取文件名前面的 x 以有效地重命名前面带有 x 的文件的任何信息。
您可以依赖 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
。
目标是使用文件路径为特定目录中的每个文件名添加文本。我不希望它仅适用于当前目录,但无论您在文件树中的哪个位置都可以使用。这是我的:
for f in `ls path/*`
do
mv "&f" "x$f"
done
它没有将它移动到具有前面带有 x 的新文件名的相同路径,而是尝试将它移动到 x/path (这显然会出错),但我似乎找不到关于如何获取文件名前面的 x 以有效地重命名前面带有 x 的文件的任何信息。
您可以依赖 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
。