問題:

問題:

これを行うスクリプトがあります。

 rm -rf "$test_dir" && sync && mkdir -p "$test_dir"
 unzip -qq "$zip" -d "$test_dir"
 # compile and run some stuff, diff some files...
 evince "$pdf" 2>/dev/null  # $pdf is a path inside the mentioned folder $test_dir
 echo "[Next]..."
 read
 # then it goes to the next zip, and do the same again.
  • A.zipzipファイルを呼び出し、次のファイル(zipファイルのリストから)を呼び出してみましょうB.zip
  • 各zipファイルには、2つのテキストファイルと1つのPDFが付属しています。

問題:

抽出フォルダがすでに削除されて再作成され、B.zipの順番になったら、テキストファイルをCat.してEvinceでPDFを開くと、B.zip1〜2秒間正しいPDFが表示されます。

その後、evinceは文書を再読み込みしてからインポートしたPDFを表示しますA.zip

A.zip行って手動でPDFをもう一度開くと、実際には中のファイルではなく入ったファイルになりますB.zip(したがって、evinceは新しいファイルを開くだけです)。

手動でテキストファイルを再キャットすると、コンテンツは端末に登録された最後の猫の1つ(の猫B.zip)ではなく、次のテキストファイルの内容です。A.zip

疑い:

フォルダ自体(またはそのコンテンツ)が削除された後に戻ってくるようです。

修正しようとする:

以前は「$test_dir」の内容を削除していましたが、ディレクトリ自体は削除しませんでした。問題が頻繁に発生しました。その後、フォルダを削除して再度削除することにしましたが、mkdir問題が再び発生するようです。 。

問題が続くようにsyncコマンドをすぐに追加してみました。rm -rf

削除後も問題は解決しませんsleep

私が確認した内容:

私はWeb上で同様の質問をいくつか見ましたが、すべてが他のプロセス、docker、または他のプロセスに関連しています。私が使用するフォルダは私の家のディレクトリにすぎず、私のフォルダを除いて特別なプロセスは実行されません。スクリプト([更新]実際に1つありました。答えを参照してください)

確認しましたが、スクリプトの他の場所では解凍されません。

答え1

原因が見つかりました。 MegaSyncアプリケーションはバックグラウンドで実行されていますが、すべての同期中に削除したファイルを再度インポートして問題を解決しました。

関連情報