플래시 카드에서 로컬 하드 드라이브로 파일을 복사하고 있는데 대상 파일을 파일 수정 날짜에 해당하는 디렉터리로 그룹화하고 싶습니다. 어떤 제안이 있으십니까?
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
, 디렉토리의 특이한 문자 고려, 재귀적으로 설정 등).