如何将一些但不是全部文件从一个目录移动到另一个目录?

Olg*_*aya 4 shell cp filenames rename

我需要将我的文件从一个目录移动到另一个目录。但是有一些问题。我的文件名模式是这样的:

  apple.0, apple.<n>, n -> {0,1,2,3 ...~ }
Run Code Online (Sandbox Code Playgroud)

所以mv apple.*不会工作,因为我需要保留apple.0,它始终是活动的。

我如何在例外情况下移动它们(在这种情况下,保留 apple.0)?

Mar*_*l G 8

如果你使用 bash 你应该可以使用

mv apple.[^0]* /other/directory/
Run Code Online (Sandbox Code Playgroud)

这将移动扩展名不以 0 开头的任何文件([] 开头的“^”在 bash 中表示“不是”)。如果您确定只有一个字符作为结尾,您也可以使用

mv apple.[^0] /other/directory/
Run Code Online (Sandbox Code Playgroud)

如果您必须确保只能使用以数字结尾的文件

shopt -s extglob
mv apple.@([1-9])*([0-9]) /other/directory/
Run Code Online (Sandbox Code Playgroud)

虽然这与 apple.01 或类似的不匹配....

最后一个应该得到所有以数字结尾的苹果文件

shopt -s extglob
mv apple.*([1-9]|[0-9]+([0-9])) /other/directory/
Run Code Online (Sandbox Code Playgroud)