오늘 날짜를 사용하여 디렉터리를 만들고 해당 디렉터리로 파일을 이동합니다.

오늘 날짜를 사용하여 디렉터리를 만들고 해당 디렉터리로 파일을 이동합니다.

오늘 날짜(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/

그러나 대규모 배치를 실행하기 전에 파일 이름에 이상한 점이 있는지(예: 날짜 문자열이 포함된 다른 디렉터리) 고려할 수 있습니다.

관련 정보