Go에서 파일이 실행 가능한지 확인하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-03 19:30:29
원래의
697명이 탐색했습니다.

How to Determine if a File is Executable in Go?

Go에서 파일 실행 가능성 확인

Go에서는 파일 모드, 특히 권한 비트를 검사하여 파일이 실행 가능한지 여부를 확인할 수 있습니다. . 이 검사를 수행하는 함수를 구성하는 방법은 다음과 같습니다.

<code class="go">import (
    "os"
)

func IsExecutable(mode os.FileMode) bool {
    return mode&0111 != 0
}</code>
로그인 후 복사

이 함수는 비트 AND 연산자(&)를 사용하여 파일 모드에서 가장 낮은 9개의 권한 비트(0777 8진수 비트마스크)를 추출합니다. 비트마스크 0111을 사용하면 파일의 권한 비트 중 실행을 위해 설정되어 있는지 확인할 수 있습니다. 비트가 설정된 경우 함수는 true를 반환합니다.

테스트 사례:

다음 테스트 사례를 고려하세요.

<code class="sh">#!/usr/bin/env bash
...
# create test directory and files
...
# set executable permission on quux.sh
chmod +x test/foo/bar/quux.sh
...</code>
로그인 후 복사

그리고 해당 Go 코드:

<code class="go">import (
    "os"
    "path/filepath"
    "fmt"
)

func main() {
    filepath.Walk("test", func(path string, info os.FileInfo, err error) error {
        if err != nil || info.IsDir() {
            return err
        }
        fmt.Printf("%v %v", path, IsExecutable(info.Mode()))
    }
}</code>
로그인 후 복사

이 코드를 실행하면 다음이 인쇄됩니다.

test/foo/bar/baz.txt false
test/foo/bar/quux.sh true
로그인 후 복사

이것은 테스트 케이스의 의도대로 quux.sh가 실행되는 동안 baz.txt는 실행 가능하지 않음을 확인합니다.

Windows 호환성

제공되는 솔루션은 Linux 및 macOS를 포함한 Unix 시스템에만 적용됩니다. Windows의 경우 os를 사용할 수 있습니다. 파일이 실행 가능한지 확인하는 실행 가능한 함수입니다. 그러나 os.Executable은 파일의 실제 실행 가능성이 아니라 파일에 ".exe" 확장자가 있는지 여부만 표시한다는 점은 주목할 가치가 있습니다.

위 내용은 Go에서 파일이 실행 가능한지 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!