在 ls 和 mv 中使用正则表达式

在 ls 和 mv 中使用正则表达式

我有这样的目录结构

├── UK
│   ├── BuyBand_go_UK.png
│   ├── BuyBand_go_UK.svg
│   ├── BuyBand_K.png
│   ├── BuyBand_K.svg
│   ├── BuyBago_UK.png
│   ├── BuyBago_UK.svg
│   ├── BuyBand_ch_Logo_UK.png
│   └── BuyBand_ch_Logo_UK.svg
└── US
    ├── BuyBand_go_US.png
    ├── BuyBand_go_US.svg
    ├── BuyBand_S.png
    ├── BuyBand_S.svg
    ├── BuyBago_UK.png
    ├── BuyBago_UK.svg
    ├── BuyBand_ch_Logo_US.png
    └── BuyBand_ch_Logo_US.svg

如何在一个命令中移动父目录中的所有文件UK和目录中的所有文件?US

这是我尝试过的:

   mv (US|UK)/* .

答案1

从父目录尝试此操作:

mv {UK,US}/* .

该语法与正则表达式中使用的语法{A,B,...}类似。(A|B|...)

如果您的列表中未显示这些目录中的点文件(隐藏文件),请运行

mv {UK,US}/{*,.*} .

*glob 将扩展到所有文件和目录,除了以点开头的文件和目录。该.*glob 将扩展到所有点文件。

相关内容