이 포럼은 처음이지만 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
간단한 방법은 다음의 조합을 사용하는 것입니다.찾다,앗그리고xargs, *.msg 파일이 있는 위치를 바꾸십시오.
#!/bin/bash
files="$(find <your_directory> -type f -name '*.msg' | sed 's#.*/##')"
echo "$files" | awk -F '-' '/1/ {print $1"/"$2"/"$3"/"}' | xargs -I {} mkdir -p {}
echo "$files" | awk -F '-' '/1/ {print $1"/"$2"/"$3"/" $0}' | xargs -I {} touch {}
결과 :
2019/05/01/2019-05-01-00.34.00.msg
2019/05/02/2019-05-02-00.36.00.msg
2019/06/14/2019-06-14-01.38.00.msg