単一のファイル(PDF)があり、file-001
、file-002
などの名前の同じフォルダー(200がニース)に多数の同一のコピーを保持したい.
どうすればいいのですか?
次のようなことができます
< file tee file-{001..200}
ただし、メディアが読み取り不能になった場合、コピーの数は関係ありません。基本的に、バックアップには多様性が必要です。
tee
は、その標準入力を、指定された各ファイルに加えて標準出力に書き込むことに注意してください-大きなファイル、またはバイナリデータや端末設定に干渉する可能性のあるその他の特殊文字を含むファイル標準出力をビットバケットにダンプするには
< file > /dev/null tee file-{001..200}
これは、シェルトリックが非常に役立つ古典的なケースです。
for i in {000..199}; do cp file file-$i; done
そして冗談だとわかっています、しかし、あなたが使用できるランダムな_
または-
を名前から分離したい場合:
for i in {000..199}; do
cp file file$(cat /dev/urandom | tr -dc '_-' | fold -w 1 | head -n 1 )$i;
done
(読みやすくするための複数行...)
:-P
ファイルの単一の複製を作成するには、おそらくcp
を使用できることを知っています。
cp file file-001
これで、ファイルにより多くの複製を作成するために、cp
をxargs
と組み合わせることができます。あなたの場合:
echo file-{001..200} | xargs -n 1 cp file
file
をfile-001
、file-002
、...、file-200
にコピーします。詳細については、man xargs
を参照してください。
いつものように、pythonトラックは遅れますが、:
実行可能にし、ターミナルウィンドウにドラッグし、ファイルをドラッグしてターミナルウィンドウにコピーし、コピー数を設定します。
script file number_ofcopies
先行ゼロの数は自動的に設定され、ファイルにはfile_001.pdf
、file_002.pdf
という名前が付けられ、ファイル番号はbefore拡張子になります。
スクリプト:
#!/usr/bin/env python3
import sys
import shutil
orig = sys.argv[1]; n = sys.argv[2]; size = len(str(n)); out = (orig[:orig.rfind(".")], orig[orig.rfind("."):])
for item in [out[0]+"_"+(size-len(str(item)))*"0"+str(item)+out[1] for item in range(1, int(n)+1)]:
shutil.copyfile(orig, item)