Oneliner는 소스 폴더를 보관, 테스트 보관 및 삭제하거나 오류 발생 시 중지합니다.

Oneliner는 소스 폴더를 보관, 테스트 보관 및 삭제하거나 오류 발생 시 중지합니다.

특정 폴더에 최신 아카이브의 압축을 풀고 이를 사용한 다음(명확성을 위해 코드가 제거됨) 아카이브를 만들고 테스트하고 모든 것이 제대로 작동하면 폴더를 삭제하는 작은 쉘 기능을 만들었습니다 tmp.그렇지 않으면 멈추다. 때때로 작동하지 않는 경우가 있습니다(보관 문제로 언제 재시도해야 할지 모르겠습니다).아니요폴더를 삭제하고 중지하세요. 내 작은 스크립트가 작동하지 않습니다. 이미 댓글을 달았는데 문장 중 하나가 작동하지 않았습니다. 따라서 제 스크립트는 다음과 같습니다.

mine() {
    src="/mnt/myfolder"
    game_folder="MyGameFolder"
    src_folder="${src}/${game_folder}"
    src_archive="${src}/${game_folder}.tar"
    tmp="/tmp/tmpfolder"

    # Expand path (don't do this if path is set by user input!):
    echo "Folder tmp: '${tmp}'."
    [ ! -d "${src}" ] && echo "Folder src: '${src}' not found. Exiting." && return 1
    rm -rf "${tmp}"
    mkdir "${tmp}"
    [ ! -d "${tmp}" ] && echo "Folder tmp: '${tmp}' not found. Exiting." && return 1
    cd "${tmp}"
    if [ -d "${src_folder}" ]; then
        # Archive folder exists -> find latest archive and uncompress:
        latest="$(ls -t "${src_folder}/" | head -1)"
        full_latest="${src_folder}/$latest"
        if [ -f "${full_latest}" ]; then
            echo Copying "${latest}"...
            cp "${full_latest}" .
            echo Unpacking "${latest}"...
            tar xf "${latest}"
        else
            echo "Warn: no archive found in: '${src_folder}'"
        fi
    else
        echo "No folder: '${src_folder}', creating folder, it's a new game..."
        mkdir "${src_folder}" \
        || (echo "Unable to create '${src_folder}'" ; return 1)
    fi

    archive="$(date '+%Y.%m.%d-%Hh%Mm%Ss').${game_folder}.tar.bz2"
    printf "\n\nMaking archive '${archive}'..."

    # here's the one-liner that doesn't work:
    tar cjf "${archive}" "${game_folder}/" &&
    mv "${archive}" "${src_folder}/" &&
    latest="$(ls -t "${src_folder}/" | head -1)"
    && tar -tf "${latest}" ||
    (echo "Error tar cjf ${archive}" "${src_archive}/" && exit 1)
    rm -rf "${tmp}"
    cd
    printf "\nDone. You can exit the shell if you want now.\n\n"
    return 0
}

작동하게 하려면 무엇을 변경해야 합니까?

관련 정보