자신에게 실행 권한을 부여하지 않고 파일을 어떻게 실행할 chmod u+x
수 있습니까?
'프로그램으로 파일 실행 허용'체크 표시를 시도하면 체크 표시가 즉시 제거됩니다.
자신에게 실행 권한을 부여하지 않고 파일을 어떻게 실행할 chmod u+x
수 있습니까?
'프로그램으로 파일 실행 허용'체크 표시를 시도하면 체크 표시가 즉시 제거됩니다.
답변:
파일을 소유하고 있는지 확실하지 않은 경우 추가 작업을 수행하기 전에이 작업을 수행하십시오.
다음 방법 중 하나를 사용하여 실행하려는 파일이 있는지 확인하고 확인하십시오.
터미널에서이 명령을 실행
[ ! -O "/path/to/file" ] && echo "You don't own the file"
You don't own the file
"가 인쇄되면 아래의 "파일 소유권 변경"을 참조하십시오.터미널에서이 명령을 실행
sudo chown $USER:$(id -gn $USER) "/path/to/file"
나는에서 발견 대답 코멘트 에 의해 Lekensteyn 온 대답 A에 대한 질문 에 대해 chmod
나는 그것의 자신의 질문과 대답, Lekensteyn에 전체 신용을받을 권리가 생각 NTFS 파티션에.
실행 파일 ( /path/to/executable
올바른 경로로 대체)에이 명령을 사용하십시오 .
64 비트 실행 파일 :
/lib64/ld-linux-x86-64.so.2 /path/to/executable
32 비트 실행 파일 :
/lib/ld-linux.so.2 /path/to/executable
위의 방법으로 문제가 해결되지 않으면 (또는 파일을 찾을 수 없음 오류가 발생하면) 위의 명령 전에이를 사용해보십시오.
cd "$(dirname /path/to/executable)"
위의 모든 명령 은 텍스트 기반 스크립트 (Bash, Python, Perl 등)에서 작동 하지 않습니다 (아래 참조).
실행 파일이 32 ( x86
) 또는 64 ( x86-64
) 비트 인지 확인하려면이 명령을 사용하십시오.
objdump -f "$file" | grep '^architecture' | cut -d, -f1 | sed 's/architecture: //'
이 표시되면 i386:x86-64
64 비트입니다. 그것이 말하면 i386
32 비트입니다.
텍스트 기반 스크립트 (Bash, Python, Perl 등)의 #!
경우 파일 의 첫 번째 줄에 지정된 명령을 사용해야 합니다.
예를 들어 파일의 첫 줄이
#!/usr/bin/env python3
그런 다음 터미널에서 이러한 명령을 실행 /path/to/file
하십시오 (올바른 경로로 대체 )
cd "$(dirname /path/to/file)" # Not strictly necessary, see section below
# Replace '/usr/bin/env python3' with the first line without the front #!
/usr/bin/env python3 /path/to/file # Use './file' if you want
.jar
파일Java 실행 가능 jar의 경우 다음 명령을 사용하면됩니다 ( /path/to/jar
올바른 경로로 대체 ).
cd "$(dirname /path/to/jar)" # Not strictly necessary, see section below
java -jar /path/to/jar
cd "$(dirname /path/to/file)"
다음 cd "$(dirname /path/to/file)"
과 같은 방법으로 프로그램을 실행하기 전에 사용할 필요가없는 상황이 있습니다 cd
.
apt-get
)cd
또는 해당하는 파일 조작을 수행하기 전에 절대 경로 변경 (예 : cd "$(dirname "$0")"
)./
슬래시로 시작하거나 슬래시없이 시작하는 경로)를 참조하지 않습니다확실하지 않은 경우 cd "$(dirname "$0")"
스크립트 상단에 (또는 해당하는 경우) 추가 (또는 해당되는 경우)하거나 사용하십시오 cd "$(dirname /path/to/file)"
.
쉘 스크립트 인 경우 다른 쉘 스크립트에서 "소스"할 수 있습니다.
#!/bin/bash
# This script runs another script indirectly, by sucking in its contents and evaluating inline:
source /path/to/script/which/lost/its/exec/flag "$@"
필요한 경우 "$ @"는 명령 행 매개 변수를 추가합니다.
그러나 이것은 근본적인 문제에 대한 최상의 솔루션은 아니지만 아마도 그 문제에 대한 대안을 제공 할만큼 충분히 알지 못합니다.
bash script $@