私はポータブルanacondaパッケージに取り組んでおり、findとsedを使用してすべてのファイルを検索し、現在のディレクトリとそのサブディレクトリ内のファイル内のパスを置き換えようとしています。
しかし、コマンドを実行すると、sedがエラーをスローします。
sed: couldn't edit anaconda3: not a regular file
私が使用しているコマンドは次のとおりです。
find ./ -type f -exec sed -i -e "s+/opt/conda_tools+$TOOLKIT_DIR+g" * {} \;
/はパスの一部なので、区切り文字として+を使用しています。スクリプトを実行しているディレクトリの内容は次のとおりです。
drwxr-xr-x 24 test_user linuxusers 4096 Nov 21 16:07 anaconda3
Findコマンドを単独で実行すると、ファイルは期待どおりに一覧表示されますが、何らかの理由でディレクトリ名がまだ取得されています。次のバリエーションのコマンドも試してみましたが、成功しませんでした。
find ./ -type f -exec sed -i '' "s+/opt/conda_tools+$INSTALL_DIR+g" * {} \;
以前はfindとsedを使用して成功していましたが、次にどこを見ればいいのか少し困っています。私がここで見逃している、またはそれほど明白ではない、明らかに間違っているものはありますか?
から「*」を削除
find ./ -type f -exec sed -ie "s+/opt/conda_tools+$TOOLKIT_DIR+g" * {} \;
そう
find ./ -type f -exec sed -ie "s+/opt/conda_tools+$TOOLKIT_DIR+g" {} \;