假设我有这些文件:
essay.aux essay.out
essay.dvi essay.pdf
essay.fdb_latexmk essay.tex
essay.fls essay.toc
essay.log ......
我如何将它们重命名为:
new_name.aux new_name.out
new_name.dvi new_name.pdf
new_name.fdb_latexmk new_name.tex
new_name.fls new_name.toc
new_name.log ......
问题是它们有不同的扩展名而不是不同的名称,所以我不能使用这个问题的答案。另外,我在没有rename
命令的 macOS 上。
这是我能够开始工作的解决方案:
shopt -s nullglob
如果它正在解析的目录为空,这将防止错误
for file in "${my_files}/${old_name}"*; do
只要它
file
以/root/temp/files/
essay
my_extension="${file##*.}"
这将贪婪地修剪文件名中最后
.
找到的任何内容(希望只留下扩展名)mv "$file" "${my_files}/${new_name}.${my_extension}"
这会将旧文件移动到新文件名,同时保留扩展名。(改名)
您还可以使用查找:
如果你使用 zsh,你可以这样做:
感谢这个答案。
我已经使用下面的命令来获取输出
首先,我在循环中使用了 for 循环,
for
我提到了所有文件扩展名,然后在循环中,我使用awk
命令根据要求重命名文件。测试和工作正常
命令