타임스탬프를 기준으로 한 디렉터리에서 다른 디렉터리로 파일을 가져와야 합니다.
/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