특정 날짜의 파일을 한 디렉터리에서 다른 디렉터리로 복사하고 싶습니다. 누구든지 나에게 사용할 Unix 명령을 제안할 수 있습니까?
답변1
이를 수행하는 가장 좋은 방법은 명령을 사용하는 것입니다 find
. 여기에는 많은 방법이 있습니다. 그 중 두 가지를 설명하겠습니다.
1)상대 시간 간격
이 접근 방식에서는 정확한 시작 및 종료 타임스탬프를 지정한 다음 modified/accessed/changed
해당 기간에 속하지 않는 모든 파일을 필터링합니다. 이 작업을 수행하려면 명령을 사용 touch
하고 특정 이름으로 파일을 저장할 수 있습니다.타임스탬프. 다음 예에서는 및 로 설정된 두 개의 마커( 및 )
를 만듭니다 . 그런 다음 및 옵션을 사용하여 파일을 선택합니다.timestamp_begin_file
timestamp_end_file
3 HOURS AGO
1 HOUR AGO
newerct
! 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
옵션을 사용하여 해당 파일을 복사할 수 있습니다.