타임스탬프를 기준으로 한 디렉터리에서 다른 디렉터리로 파일을 복사합니다.

타임스탬프를 기준으로 한 디렉터리에서 다른 디렉터리로 파일을 복사합니다.

타임스탬프를 기준으로 한 디렉터리에서 다른 디렉터리로 파일을 가져와야 합니다.

/Directory1  - From directory
TEMP-dummy-20160812-1149.200476.xml
TEMP-dummy-20160812-1151.000000.xml
TEMP-dummy-20160812-1152.000000.xml

타임스탬프가 다음보다 큰 파일을 복사해야 합니다.20160812-1150.000000.

참고: 타임스탬프20160812-1150.000000정적 파일에 나타납니다.

예상되는 결과:

/Directory2
TEMP-dummy-20160812-1151.000000.xml
TEMP-dummy-20160812-1152.000000.xml

답변1

그리고 zsh:

cd /dir1 &&
  mv TEMP-dummy-*(e:'[[ $REPLY > TEMP-dummy-20160812-1150.000000 ]]':) /dir2

POSIXly에서는 이러한 모든 파일이 다음 패턴을 따른다고 가정합니다.

cd /dir1 &&
  printf '%s\n' TEMP-dummy-* |
    awk '$0 > "TEMP-dummy-20160812-1150.000000"' |
    xargs sh -c '[ "$#" -eq 0 ] || exec mv "$@" /dir2' sh

답변2

cd /Path/to/Directory1
ref_timestamp=201608121150000000 # punctuation marks deliberately removed.
for file in *
do
  timestamp=$(echo ${file} | cut -c 12-31 | tr -cd [:digit:])
  if [ ${timestamp} -ge ${ref_timestamp} ]
  then
    cp ${file} /Path/to/Directory2
  fi
done

tr이 코드 조각에서는 Sun Solaris, AIX 또는 HP-UX와 같은 기존 Unix 시스템과 함께 제공되는 표준 버전이 아닌 GNU Coreutils를 사용하고 있다고 가정합니다 .tr

관련 정보