명령줄에서 최신 파일 및 확장자를 가진 관련 파일을 다른 디렉터리로 복사하는 방법

명령줄에서 최신 파일 및 확장자를 가진 관련 파일을 다른 디렉터리로 복사하는 방법

다음 파일이 포함된 디렉터리가 있다고 가정해 보겠습니다.

one.txt, one.txt.tmp1, one.txt.tmp2, two.txt, two.txt.tmp1, two.txt.tmp2, ... 및 기타 유사한 콘텐츠

최신(타임스탬프 기준) 파일을 찾고 싶습니다. 파일이 two.txt이고 모든 파일이 tmp 파일(two.tmp1 및 two.tmp2)이라고 가정하고 이를 알려진 디렉터리에 복사합니다. 최신 파일을 복사하는 방법을 알고 있습니다.

cp -p " ls -dtr1 "$SRC_DIR"/* | tail -1" "$DEST_DIR"

하지만 관련 서류가 모두 필요해요. 누구든지 어떤 아이디어가 있습니까? 감사해요!

답변1

뭐, 목표는 분명해요. bash 구문만 사용하여 bash에서 무언가를 빠르게 해킹했습니다.

#!/usr/bin/env bash

latest_file () 
{ 
    local file latest 
    local src="$1"
    local dst="$2"
    for file in "${src:-.}"/*;
    do
        [[ $file -nt $latest ]] && latest="$file";
    done;
    cp -v "${latest%.*}"* "$dst"
}

main() {
  if (($# < 2)); then
    printf '%s\n' "Usage: ${0##*/} [src] [dst]"
    exit 1
  else
    latest_file "$@"
  fi
}
main "$@"
  1. latest이 내용을 "확장 필요 없음"이라는 스크립트에 넣으십시오.
  2. 실행 가능하게 만들어라 chmod u+x latest
  3. 실행 ./latest source destination # source는 소스 디렉터리이고, 대상은 파일을 복사할 대상 디렉터리입니다.
  4. 인수 없이 실행하면 ./latest무엇을 해야 할지 알려줄 것입니다.

관련 정보