移动和重命名没有扩展名的文件

移动和重命名没有扩展名的文件

由于我对 bash 还很陌生,所以我无法弄清楚如何执行这个 bash 脚本。

我想抓取目录中的所有文件,更改它们的名称(我认为更改名称部分可以使用 完成mv)并将它们移动到另一个目录(再次使用mv)。问题是文件没有扩展名。它们的名称只是数字,如:123。只有数字。如何抓取每个无扩展名的文件,更改其名称并移动它?

谢谢。

答案1

您可以使用扩展通配符搜索名称中仅包含数字的文件:

shopt -s extglob
for file in +([0-9]) ; do
    newname=newpath/...    # Build the new name.
    mv "$file" "$newname"
done

答案2

就我个人而言,我会使用basename命令来抓取文件名本身,并使用 grep 测试它是否带有点字符,这意味着它具有扩展名。这可以在 if 语句中使用它,如果确实如此,则使用continue语句转到下一个文件。至于移动,这可以在 if 语句之后进行。这样,mv除非命令没有扩展名,否则命令是无法访问的

相关内容