Python 2.7.3 を使用しています。ディレクトリツリーの一部をある場所から別の場所にコピーするPythonスクリプトに取り組んでいます。コピーする必要があるファイルの一部はシンボリック リンクです。
Python を使用して、ある場所から別の場所にシンボリックリンクをたどらずにコピーするにはどうすればよいですか? (「通常の」ファイルと同じように盲目的にコピーしたいだけです)
shutil.copy()
Python 3.3 では引数 がサポートされていますfollow_symlinks=False
が、古いバージョンの shutil ではサポートされていません。
編集: 詳細:
このスクリプトの目的は、指定された場所からすべてのファイルを取得し、それらを個々のアーカイブに分割することです。ディレクトリ全体を圧縮してアーカイブを分割することでこれを実行できることはわかっていますが、1 つの大きなアーカイブに再結合することなく、各アーカイブを個別に抽出する機能が必要です。また、各アーカイブは指定されたサイズ未満である必要があります。
基本的なアプローチ:
- ソース ディレクトリのすべてのファイルへのすべての絶対パスを取得する
- すべてのファイルのすべてのサイズを取得する
- すべてのファイルを (場所に関係なく) サイズ順に並べ替える
- 場所 X から tmp の場所にファイルをコピーします (コピーされたファイルの合計が最大アーカイブ サイズ以下になるまで)
- tmp のアーカイブを作成
- クリーンな tmp の場所
- コピーするファイルがまだあるうちに 4 に戻る
フィードバックをいただければ幸いです。ありがとう。