コードでcpを起動すると、stat '/tmp/somedir'はシェルでは機能しません。

コードでcpを起動すると、stat '/tmp/somedir'はシェルでは機能しません。

私は実際のxアプリケーションなどで実装し、いくつかのスクリプトをよりエレガントにしようとしています。

スクリプトのある時点で、私たちはデフォルトでマウントされたリムーバブルストレージデバイスのすべてをインポートし、tmp作業フォルダ内の指定されたフォルダにコピーしようとします。シェルで実行するとスムーズに実行されます。コードで実行すると失敗します。

コピーコマンド:

cp -avfr /tmp/mnt221234jk/* /tmp/mnt23255/disk1/

基本アプリケーションで発生するエラーは次のとおりです。

cp: cannot stat: '/tmp/mnt221234jk/*' file not found.

奇妙なことは、それが確かに存在し、アプリケーションを実行しているユーザーに適切な権限があることです。stat /tmp/mnt221234jk/*シェルから cp コマンドを実行でき、両方とも正常に動作します。

それ以外の/*ファイルコピーソースから省略すると動作しますが、ターゲットにmnt221234jk私が望む名前ではない新しいフォルダが作成されます。

いくつかの注意:シェルコマンドを実行するコードは間違いなく機能し、うまく動作します。しかし、作業経路やそのようなものが必要なのは、おそらく少し奇妙です。

ファイルが存在しないために統計的エラーが発生しないと、誰にもビープ音が鳴りますか?

権限などを使用してファイル構造を再帰的に効率的にコピーできる代替シェルコマンドがある場合は、それを別の方法で実装しようとします。

ベストアンサー1

問題のあるスクリプトの呼び出しは、ワイルドカードファイルではなくシェルによって実行されます。どのように呼ぶかはわかりませんが、ファイルを繰り返すか繰り返す方法を見つける必要があります。

おすすめ記事