Buatlah perintah shell (bash) untuk membuat 200 file kosong dengan format penamaan YYYYMMDD-AAA.txt pada direktori kerja, di mana YYYYMMDD adalah tanggal pada saat perintah/script dieksekusi, dan AAA adalah 3 digit nomor urut, dari 001 hingga 200. Jelaskan perintah/script tersebut, dan lampirkan hasilnya.
Sesuai deskripsi persoalan, kita membutuhkan string-string berikut ini.
String tanggal hari ini dalam format YYYYMMDD, yang dapat diperoleh dari hasil eksekusi perintah shell: date +%Y%m%d.
Kumpulan string nomor urut file dari "001" hingga "200", yang dapat diperoleh dari hasil eksekusi perintah shell: seq -w 1 200. Parameter -w digunakan agar setiap string yang dihasilkan memiliki panjang yang sama dengan angka batas terbesar, dengan penyisipan "0" di depan string jika diperlukan.
Pada dasarnya, perintah shell yang diperlukan adalah: tgl=$(date +%Y%m%d) seq -w 1 200 | while read -r nomor; do touch ./$tgl-$nomor.txt done
Untuk mode one-liner: tgl=$(date +%Y%m%d); seq -w 1 200 | while read -r nomor; do touch ./$tgl-$nomor.txt; done
Perintah tersebut melakukan:
Inisialisai variabel tgl dengan tanggal hari ini berformat YYYYMMDD. Hal ini dilakukan sebelum masuk ke dalam iterasi while, bukan di dalam while, agar perintah date hanya dipanggil sekali saja.
Pipeline (mengarahkan nilai) kumpulan string nomor urut (yang dihasilkan dari perintah seq) ke perintah while read -r nomor, sehingga untuk setiap iterasi, variabel nomor berisi nomor urut.
Setiap iterasi melakukan pembuatan file kosong dengan format YYYYMMDD-AAA.txt dengan perintah touch.
Untuk membuat sebuah file kosong, digunakan touch, bukan echo > namafile, karena dengan perintah echo > namafile, file yang dibuat akan berisi 1 karakter null, yang mengakibatkan ukurannya menjadi 1 Byte. Jadi, file yang dibuat tidak kosong, dan tidak sesuai dengan apa yang diminta.
Sebagai pelengkap, tangkapan layar dari daftar isi direktori kerja dapat dilihat pada gambar.
Perintah shell (bash) untuk persoalan ini adalah:
tgl=$(date +%Y%m%d)
seq -w 1 200 | while read -r nomor; do
namafile="$tgl-$nomor.txt"
echo "Membuat file $namafile..."
touch ./$namafile
done
tgl=$(date +%Y%m%d); seq -w 1 200 | while read -r nomor; do namafile="$tgl-$nomor.txt"; echo "Membuat file $namafile..."; touch $namafile; done
Pembahasan
Sesuai deskripsi persoalan, kita membutuhkan string-string berikut ini.
Parameter -w digunakan agar setiap string yang dihasilkan memiliki panjang yang sama dengan angka batas terbesar, dengan penyisipan "0" di depan string jika diperlukan.
Pada dasarnya, perintah shell yang diperlukan adalah:
tgl=$(date +%Y%m%d)
seq -w 1 200 | while read -r nomor; do
touch ./$tgl-$nomor.txt
done
Untuk mode one-liner:
tgl=$(date +%Y%m%d); seq -w 1 200 | while read -r nomor; do touch ./$tgl-$nomor.txt; done
Perintah tersebut melakukan:
Hal ini dilakukan sebelum masuk ke dalam iterasi while, bukan di dalam while, agar perintah date hanya dipanggil sekali saja.
Untuk membuat sebuah file kosong, digunakan touch, bukan echo > namafile, karena dengan perintah echo > namafile, file yang dibuat akan berisi 1 karakter null, yang mengakibatkan ukurannya menjadi 1 Byte. Jadi, file yang dibuat tidak kosong, dan tidak sesuai dengan apa yang diminta.
Sebagai pelengkap, tangkapan layar dari daftar isi direktori kerja dapat dilihat pada gambar.