Anda dapat menggunakan mcp
dari mmv
paket dengan cara berikut:
mcp "*original*" "#1copy#2"
Ini akan menyalin setiap file yang berisi string "asli" di direktori saat ini dan ganti string ini dengan "copy". Anda dapat menguji apa yang mcp
akan dilakukan dengan menambahkan -n
flag, namun tidak akan menimpa file secara diam-diam, tetapi bertanya kepada Anda. Menggunakan mmv
memiliki keunggulan dibandingkan cp
bahwa Anda tidak harus memanggilnya untuk setiap file tunggal - dengan seribu file yang sepertinya Anda salin, itu membuat perbedaan.
Anda juga dapat menggunakan GNUparallel
dengan cara berikut ( --dry-run
untuk pengujian, hapus untuk melakukan penyalinan):
parallel --dry-run cp -p "{}" "{=s/original/copy/=}" ::: *
atau, jika itu memberikan kesalahan "Daftar argumen terlalu panjang":
printf "%s\0" * | parallel --dry-run -0 cp -p "{}" "{=s/original/copy/=}"
Contoh dijalankan
$ ls -1
foo_bar_abc_1_01_geh_original.in
foo_bar_abc_1_02_geh_original.in
foo_bar_abc_1_03_geh_original.in
foo_bar_abc_1_04_geh_original.in
$ mcp "*original*" "#1copy#2"
$ ls -1
foo_bar_abc_1_01_geh_copy.in
foo_bar_abc_1_01_geh_original.in
foo_bar_abc_1_02_geh_copy.in
foo_bar_abc_1_02_geh_original.in
foo_bar_abc_1_03_geh_copy.in
foo_bar_abc_1_03_geh_original.in
foo_bar_abc_1_04_geh_copy.in
foo_bar_abc_1_04_geh_original.in
Mari kita time
jalankan lebih dari 1000 file masing-masing 100 KiB pada mesin yang lambat :
$ time mcp "*original*" "#1copy#2"
real 0m1.114s
user 0m0.000s
sys 0m0.132s