
오늘 날짜(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/
하지만 대규모 배치에서 이 작업을 실행하기 전에 파일 이름(예: 날짜 문자열이 포함된 다른 디렉터리)에 이상한 점이 있는지 생각해 봐야 할 수도 있습니다.