Unix에서 특정 날짜의 파일을 한 경로에서 다른 경로로 복사하는 방법

Unix에서 특정 날짜의 파일을 한 경로에서 다른 경로로 복사하는 방법

특정 날짜의 파일을 한 디렉터리에서 다른 디렉터리로 복사하고 싶습니다. 누구든지 나에게 사용할 Unix 명령을 제안할 수 있습니까?

답변1

이를 수행하는 가장 좋은 방법은 명령을 사용하는 것입니다 find. 여기에는 많은 방법이 있습니다. 그 중 두 가지를 설명하겠습니다.

1)상대 시간 간격
이 접근 방식에서는 정확한 시작 및 종료 타임스탬프를 지정한 다음 modified/accessed/changed해당 기간에 속하지 않는 모든 파일을 필터링합니다. 이 작업을 수행하려면 명령을 사용 touch하고 특정 이름으로 파일을 저장할 수 있습니다.타임스탬프. 다음 예에서는 및 로 설정된 두 개의 마커( 및 )
를 만듭니다 . 그런 다음 및 옵션을 사용하여 파일을 선택합니다.timestamp_begin_filetimestamp_end_file3 HOURS AGO1 HOUR AGOnewerct! newerct최신그럼 3시간업데이트되지 않음change그런 다음 1시간입니다(이 예에서는 시간만 보고 있습니다). 선택한 모든 파일이 $DESTINATION_PATH폴더 에 복사됩니다 .

touch -t $(date -d '3 HOUR AGO' +%Y%m%d%H%M.%S) timestamp_begin_file
touch -t $(date -d '1 HOUR AGO' +%Y%m%d%H%M.%S) timestamp_end_file
find "$FOLDER" -newerct timestamp_begin_file ! -newermt timestamp_end_file -exec cp {} $DESTINATION_PATH \;

2)절대 시간 간격
newermt옵션을 사용하여 특정 날짜 간격 내에 원하지 않는 파일을 필터링 할 수 있습니다 . 여기서는 당일 수정된 파일만 선택합니다 2007-06-07.

find . -type f -newermt 2007-06-07 ! -newermt 2007-06-08 -exec cp {} $DESTINATION_PATH \;  

내가 말했듯이, 다른 많은 대안이 존재합니다(@Jaleks가 제안한 것처럼 -a/m/ctime, 정보가 부족하기 때문에 어느 것이 귀하에게 적합한지 알 수 있는 방법이 없습니다).

자세한 내용은시간 필터find, 좀 보세요맨페이지 찾기

답변2

find등의 매개변수가 포함된 맨페이지를 보거나 -atime지정된 -mtime시간 -ctime에 액세스, 수정 또는 변경된 파일을 찾은 다음 추가로 이 -exec옵션을 사용하여 해당 파일을 복사할 수 있습니다.

관련 정보