web-dev-qa-db-ja.com

「/ dev / fd / 63そのようなファイルまたはディレクトリはありません」

私はchrootでコマンドを実行しようとしましたが(これはかなり新しい)、次の出力が表示されます。

root@hostname:~ # bash <(wget -q0 https://raw.githubusercontent.com/ubports/unity8-desktop-install-tools/master/install.sh) 
bash: /dev/fd/63: No such file or directory root
2
Radu

TL; DR:chrootの外の/rootフォルダーをchrootディレクトリーにコピーします

<(...)演算子はプロセス置換として知られており、コマンドを実行する方法であり、その出力は匿名パイプに送られます。これが/ dev/fd/63です。アイデアは、外部コマンド(ここではbash)が別のコマンド出力をファイルであるかのように扱うことを許可することです。通常、フォームは<を使用して、その擬似ファイルオブジェクトをbashの入力ストリームにリダイレクトします。

bash < <(wget -q0 https://raw.githubusercontent.com/ubports/unity8-desktop-install-tools/master/install.sh)

通常、これはwget https://stuff.com/blah | bashと変わりません。どちらの場合も、ダウンロードするスクリプトが大ざっぱなソースからのものではなく、マルウェアでもないことを100%確信していない限り、一般にこのようなコマンドを使用することはお勧めしません。

ただし、chrootでコマンドの実行について言及しているため、スクリプトはNo such file or directory rootを出力し、bashではスクリプトをbash script.shとして実行できるため、スクリプトは実行されますが、chrootにはrootという名前のディレクトリがありません。 Sudo cp -R /root chrootdirで修正できます。より良い結果を得るには、最初にスクリプトを読んで、必要なものを確認し、それをchrootフォルダーにコピーしてから、フォルダー内でスクリプトをローカルで実行することをお勧めします。 wgetを複数回実行する必要はありません

したがって、スクリプトは機能します。一般的に<Shell>: <command user typed>: error message形式のシェルスクリプトのエラー。したがって、スクリプトは一時的に/ dev/fd/63として保存され、実行されますが、必要なものが見つかりません。

こちらもご覧ください

0