我是这个论坛的新手,但对 RHEL 或脚本并不陌生。不过这个有点让我恼火。我有以下文件:
2019-05-01-00.34.00.msg
2019-05-02-00.36.00.msg
2019-06-14-01.38.00.msg
我想将它们存储在这样的目录中:
/2019/05/01/<Filename>
/2019/05/02/<Filename>
/2019/06/14/<Filename>
我还想在将文件放入目录时保留当前文件名。此外,我还想使用 bash 执行此操作。
有什么想法吗?
答案1
这里有三个文件,
$ ls
2019-05-01-00.34.00.msg 2019-05-02-00.36.00.msg 2019-06-14-01.38.00.msg
在终端中使用以下命令:
$ for i in *.msg;do mkdir -p $(awk -F- '{print $1"/"$2"/"$3}' <<< $i) && mv $i $(awk -F- '{print $1"/"$2"/"$3"/"$0}' <<< $i); done
接下来,看看树,
$ tree
.
└── 2019
├── 05
│ ├── 01
│ │ └── 2019-05-01-00.34.00.msg
│ └── 02
│ └── 2019-05-02-00.36.00.msg
└── 06
└── 14
└── 2019-06-14-01.38.00.msg
6 directories, 3 files