Linuxで「フォルダの実行」は可能ですか?

Linuxで「フォルダの実行」は可能ですか?

Linuxでフォルダを実行可能ファイルとして実行するには、いくつかの哲学がありますか?

user@node main % ls -lash ./bin
total 0
0 drwxrwxrwx  2 user  staff    64B May 23 21:04 .
0 drwxr-xr-x  6 user  staff   192B May 23 21:04 ..
user@node main % ./bin         
zsh: permission denied: ./bin

許可を拒否することは許可することを意味します。そうでなければ、なぜpermission denied同様のものではありませんかcan't run a directory

それとも、ディレクトリがこのように関連しているときにAPIの奇妙なアーティファクトでしょうか?

PS私はxフラグです使用cdを許可/拒否し、ディレクトリコンテキストに長いリスト(ls -l)を指定することは、この質問の目的ではありません。

PSS Pythonのディレクトリ内に特定のファイル構造がある場合は、Python「実行ファイル」と見なすことができます。 (つまり、Pythonインタプリタが実行するPythonファイルの代わりにディレクトリを渡すことができます)。

ベストアンサー1

フォルダはLinux APIを使用して実行できません。特に、execve返品EACCESこれを試みるとき、Zshは「権限の拒否」を意味します。おそらく実行権限が拒否された場合は、そのエラーが返される可能性があります。正式なエラーメッセージは次のとおりです。EACCES 「権限が拒否されました」;execveここで発生する非正規ファイルを実行しようとするなど、さまざまなエラーを処理するにはこれを使用します。

ほとんどのシェルはZshのように動作しますが、一部は異なる方法で処理されます(例:Bash出力)。

bash: ./bin: Is a directory

autocdオプション()を使用して、Zshにフォルダを変更してフォルダを「実行」するように指示することもできますsetopt autocd。 fishを実行しようとすると、常にフォルダに変わります。

おすすめ記事