날짜가 포함된 파일을 저장하기 위해 하위 디렉터리를 만드는 데 도움이 필요합니다.

날짜가 포함된 파일을 저장하기 위해 하위 디렉터리를 만드는 데 도움이 필요합니다.

이 포럼은 처음이지만 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

여기 3개의 파일이 있는데,

$ 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

관련 정보