重命名文件夹中的所有文件,前缀为"Unix_"
假设一个文件夹有两个文件
a.txt
b.pdf
那么它们都应该从一个命令重命名为
Unix_a.txt
Unix_b.pdf
最佳答案
如果您的文件名包含 no whitepace 并且您没有任何子目录,则可以使用简单的 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应该是可安装的(例如在带有 brew install findutils
的 Mac OS X 上)。
$ gfind . -type f -name '*' -printf "mv \"%h/%f\" \"%h/Unix_%f\"\n" | sh
关于linux - 在单个命令中使用前缀重命名文件夹中的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6329505/