【发布时间】:2019-08-23 09:19:37
【问题描述】:
我每年都有几个文件夹,在这些文件夹内有对应于不同电台的文件。有点像这样:
.
├── 2017.1
│ ├── AAAA.2017
│ ├── BBBB.2017
│ └── CCCC.2017
├── 2018.1
│ ├── AAAA.2018
│ ├── BBBB.2018
│ └── CCCC.2018
└── 2019.1
├── AAAA.2019
├── BBBB.2019
└── CCCC.2019
我想要做的是将所有这些文件移动到主目录“。”根据他们的名字,所以它会是这样的:
├── AAAA
│ ├── AAAA.2017
│ ├── AAAA.2018
│ └── AAAA.2019
├── BBBB
│ ├── BBBB.2017
│ ├── BBBB.2018
│ └── BBBB.2019
├── CCCC
│ ├── CCCC.2017
│ ├── CCCC.2018
│ └── CCCC.2019
我尝试了一些简单的代码,在其中创建文件夹并根据它们的站点简单地移动文件。我想知道是否有更“优雅”或更简单的方法
mkdir AAAA BBBB CCCC
for file in 20*/AAAA*; do
cp "$file" "/Users/admin/Desktop/test/AAAA"
done
for file in 20*/BBBB*; do
cp "$file" "/Users/admin/Desktop/test/BBBB"
done
for file in 20*/CCCC*; do
cp "$file" "/Users/admin/Desktop/test/CCCC"
done
【问题讨论】:
-
文件名的格式是什么?都以
.20XX结尾,新的目录名应该是那个时期之前的所有内容吧? -
它们以不同的方式结束,但它们都以相同的方式开始。我的意思是,您有以 AAAA 开头的文件和其他以 BBBB 开头的文件,它们分散在不同的文件夹中。目录应该以文件的前四个字母命名,因为只有五个变体,所以应该只有五个目录