我有一個文件(PDF),我想在同一個資料夾中有很多相同的副本(200 個就很好)file-001
,名為file-002
等。
我該怎麼做?
答案1
你可以做類似的事情
< file tee file-{001..200}
然而,如果媒體變得不可讀,那麼上面有多少副本就不再重要了——從根本上說,備份需要多樣性。
請注意,tee
將其標準輸入寫入標準輸出以及每個給定的文件 - 對於大文件,或者包含二進位資料或其他可能幹擾終端設定的特殊字元的文件,您可能希望將標準輸出轉儲到位桶
< file > /dev/null tee file-{001..200}
答案2
這是 shell 技巧大有幫助的經典案例。
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)