![오늘 날짜를 사용하여 디렉터리를 만들고 해당 디렉터리로 파일을 이동합니다.](https://linux55.com/image/109157/%EC%98%A4%EB%8A%98%20%EB%82%A0%EC%A7%9C%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EB%A5%BC%20%EB%A7%8C%EB%93%A4%EA%B3%A0%20%ED%95%B4%EB%8B%B9%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EB%A1%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%9D%B4%EB%8F%99%ED%95%A9%EB%8B%88%EB%8B%A4..png)
오늘 날짜(yyyy_mm_dd)라는 이름의 디렉터리를 만든 다음 오늘 날짜로 끝나는 모든 파일을 해당 디렉터리로 이동하는 스크립트를 작성 중입니다. 내가 한 일도 디렉토리를 선택했기 때문에 파일을 디렉토리로 이동하는 더 좋은 방법이 있습니까?
now=$(date '+%Y_%m_%d')
mkdir $now
mv *$now $now/
답변1
mv *?"$now" "$now/."
?
타임스탬프 앞에 최소한 하나의 문자( )가 와야 하므로 방금 생성한 디렉터리가 이동 대상으로 선택되지 않도록 합니다.
답변2
이 find
명령은 파일 형식과 파일 이름을 필터링할 수 있습니다.
그래서 나는 이것이 당신이 원하는 것을 할 것이라고 생각합니다 :
now=$(date '+%Y_%m_%d')
find . -name "*$now" -type f -print0 | xargs -0 mv -t $now/
그러나 대규모 배치를 실행하기 전에 파일 이름에 이상한 점이 있는지(예: 날짜 문자열이 포함된 다른 디렉터리) 고려할 수 있습니다.