在单个命令中使用前缀重命名文件夹中的所有文件

新手上路,请多包涵

重命名文件夹中的所有文件,前缀为 "Unix_"

假设一个文件夹有两个文件

a.txt
b.pdf

那么它们都应该从一个命令重命名为

Unix_a.txt
Unix_b.pdf

原文由 vasanthi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 421
1 个回答

如果您的文件名不包含 空白 并且您没有任何子目录,则可以使用简单的 for 循环:

 $ for FILENAME in *; do mv $FILENAME Unix_$FILENAME; done

否则使用方便的 rename 命令(这是一个 perl 脚本) - 尽管它可能不是在每个 Unix 上开箱即用的(例如 OS X 不附带 rename ) .

debian-administration.org 上的简短概述:

如果您的文件名包含空格,则更容易使用 find ,在 Linux 上应该可以使用:

 $ find . -type f -name '*' -printf "echo mv '%h/%f' '%h/Unix_%f\n'" | sh

不幸的是,在 BSD 系统上,没有 -printf 选项。但是 GNU findutils 应该是可安装的(例如在 Mac OS X 上带有 brew install findutils )。

 $ gfind . -type f -name '*' -printf "mv \"%h/%f\" \"%h/Unix_%f\"\n" | sh

原文由 miku 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题