プログラムを実行するディレクトリがあります
。/usr/bin/my-dir
ディレクトリ内からプログラムを実行する必要があるので、cd /usr/bin/my-dir ./my-programと実行する必要があります。
リモートマシンから次のように my-program を更新するスクリプトがあります: rm -rf /usr/bin/my-dir mv my-program /usr/bin/my-dir
問題は、マシンに ssh で接続して /usr/bin/my-dir ディレクトリにいるときに、スクリプトが rm -rf /usr/bin/my-dir を正常に実行できないために失敗することです (すべてのコンテンツは削除されますが、ディレクトリは削除されません)。
これを回避する方法 (たとえば、シェルを設定して、ディレクトリ内にいるときにディレクトリを削除できるようにする方法など) やその他の解決策はありますか? 現在、ディレクトリから cd して、スクリプトを実行してから、ディレクトリに cd で戻りますが、これを 1 日に何百回も実行する必要があります。これを行うには、もっと効率的な方法があるはずです。
答え1
誰かの役に立つかもしれないので。シェルの動作としては、現在のディレクトリが別のシェルのインスタンスで削除され、その後再作成されてファイルが追加されると、元のシェルには空のディレクトリが表示されるということがわかりました。
ファイルをもう一度見るには、
cd .
これにより、ディレクトリ自体を削除せずに (特定のファイルのみを削除して置き換える) 元の問題を解決できました。