ファイルの実行権限(を使用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に答えのための質問について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
(x86-64
)ビットか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)"
、任意の方法でプログラムを実行する前に使用する必要がない可能性のある状況です。少なくとも1つが真の場合、cd
最初に使用する必要はありません。
apt-get
)cd
任意のファイル操作(例:実行する前に絶対パスを変更する(または同等品)cd "$(dirname "$0")"
)./
スラッシュで始まるパスまたはスラッシュなしで始まるパス)を参照しません不明な場合cd "$(dirname "$0")"
は、スクリプトの先頭に追加(または同等のもの)するか(該当する場合)、cd "$(dirname /path/to/file)"
とにかく使用してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加