1 つのファイル (PDF) があり、同じフォルダー内になどの名前の同一のコピーを多数 (200 個程度が理想) 保存したいと考えていますfile-001
。file-002
どうすればいいのですか?
答え1
次のようなこともできます
< file tee file-{001..200}
しかし、メディアが読み取り不能になった場合、そこにコピーがいくつあっても意味がありません。基本的にバックアップには多様性。
tee
は、標準入力を標準出力と各指定ファイルに書き込むことに注意してください。大きなファイルの場合、またはバイナリデータや端末設定に干渉する可能性のある他の特殊文字を含むファイルの場合は、標準出力をビットバケットにダンプすることをお勧めします。
< file > /dev/null tee file-{001..200}
答え2
これは、シェル トリックが非常に役立つ典型的なケースです。
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
答え3
ファイルの単一の複製を作成するには、次の方法を使用できることはおそらくご存知でしょう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
答え4
いつものように、パイソン トラックは遅れて到着しますが、
実行可能にし、ターミナル ウィンドウにドラッグし、コピーするファイルをターミナル ウィンドウにドラッグして、コピー数を設定します。
script file number_ofcopies
先頭のゼロの数は自動的に設定され、ファイル名はfile_001.pdf
、file_002.pdf
ファイル番号が配置された、、となります。前に拡張子。
スクリプト:
#!/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)