Saya bertanya-tanya apakah mungkin memiliki perintah yang membuat satu file, tetapi setiap kali perintah dijalankan, itu tidak akan menimpa file yang dibuat dalam eksekusi sebelumnya.
Misalnya: touch test1.txt
akan membuat 1 file bernama test1.txt
. Tetapi lain kali saya mengeksekusinya, saya ingin file baru dipanggil test2.txt
, atau semacamnya. Jadi tanpa menimpa file yang sudah ada. Dengan cara itu bisa dijalankan beberapa kali tanpa masalah.
Jangan salah paham, saya tidak mencoba membuat banyak file dengan satu perintah.
Terima kasih sebelumnya!
sumber
touch test$(date +%Y%m%d-%H%M%S) ; touch test$(date +%Y%m%d-%H%M%S)
, itu hanya membuat satu file. Nanoseconds-time berfungsi:touch test$(date +%Y%m%d-%H%M%S%N) ; touch test$(date +%Y%m%d-%H%M%S%N)
dantouch test$(date +%Y%m%d-%H%M%S%N) test$(date +%Y%m%d-%H%M%S%N)
masing-masing membuat dua file.$()
karena memungkinkan Anda untuk ekspresi sarang, tetapi Anda juga dapat menggunakan tanda kutip mundur:touch test`date +%Y%m%d-%H%M%S`
.Saya ragu ada perintah umum untuk melakukan itu, tetapi Anda dapat memikirkan sesuatu seperti ini:
Parameter input ke fungsi ini dibagi menjadi awalan, angka, akhiran, kemudian sampai file ada, jumlahnya bertambah. Menemukan slot gratis, file dibuat dengan
touch
.Mekanisme pemisahan harus disesuaikan dengan kebutuhan Anda, dan berbagai pemeriksaan kesalahan harus ditambahkan.
sumber
Jika nomor urut tidak diperlukan, maka cara termudah adalah menggunakan
mktemp
perintah.sumber
TMPFILE=$(mktemp /tmp/example.XXXXXXXXXX) || exit 1 echo "program output" >> $TMPFILE
TMPFILE='/tmp/tmp.$$'; touch $TMPFILE