次のようなフォルダ構造があります。
a/
|b/
| f1
| f2
|c/
| f3
| f4
|d/
| f5
| f6
そのうち、、、およびにb
はc
基本d
ファイルとサブディレクトリを含めることができます。次に、ターゲットフォルダe
が存在するターゲットフォルダがありますe
。cp -r a/c e/
orを実行すると、cp -r a/d e/
c
期待どおりに内部フォルダ構造d
にコピーされます。e
しかし、実行してみるとcp -r a/b e/
結果は同じではありません。a/b
コンテンツ自体はコピーされず、コンテンツのみコピーされますb
。実行コマンドとほぼ同じです。cp -r a/b/* e/
ls
または、あるフォルダには特別な内容はありませんfile
。これはc
andと同じ権限を持ち、d
実行時にディレクトリとして表示されますfile
。
何が起こっているのかをデバッグする方法はありますか?最初は、Pythonでコピーを実行するために子プロセスを使用する問題に直面しました。
import subprocess
import pathlib
for folder in pathlib.Path("a/").iterdir():
if folder.is_dir():
subprocess.run(["cp", "-r", str(folder), "e/"])
cp -r a/b e/
その後、コマンドラインからコマンドを実行してみましたが、同じ問題が発生しました。
答え1
明らかに、コンピュータはX秒ごとに空のフォルダを削除するサービスを実行しています。したがって、b
その後に発生したコピーはe
削除されました。上記の動作が発生します。