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)?
如果你使用 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)