대상 날짜별로 재동기화 및 그룹화

대상 날짜별로 재동기화 및 그룹화

플래시 카드에서 로컬 하드 드라이브로 파일을 복사하고 있는데 대상 파일을 파일 수정 날짜에 해당하는 디렉터리로 그룹화하고 싶습니다. 어떤 제안이 있으십니까?

ls -l
-rw-rw-rw- 1 admin dba 1390 Sep  6 2019 file1
-rw-rw-rw- 1 admin dba 1390 Sep  9 2019 file2

# ...magic rsync process...

/mnt/c/2019-09-06/file1
/mnt/c/2019-09-09/file2

답변1

rsync요구 사항에 및 가 포함되지 않은 경우 스크립트에서 다음을 수행 sort할 수 있습니다 .BASH

for filename in /path/to/source/directory/*
do
    mdate=$(date -r "${filename}" +'%Y-%m-%d')
    destination="/path/to/destination/${mdate}/"
    mkdir -p "${destination}"
    cp "${filename}" "${destination}/"
done

기본적으로 스크립트는 소스 디렉토리의 각 파일을 반복하면서 시작됩니다 for. 그런 다음 파일의 수정 날짜를 변수에 저장합니다 $mdate. 다음으로 수정된 날짜인 대상 디렉터리를 정의하고 생성합니다 $mdate. 마지막으로 파일을 대상 디렉터리에 복사합니다.

이는 이를 수행하는 방법에 대한 일반적인 개요를 제공합니다. 사용 사례에 따라 다양한 사항을 조정할 수 있습니다(예: rsync대신 사용 cp, 디렉토리의 특이한 문자 고려, 재귀적으로 설정 등).

관련 정보