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