Buatlah perintah shell (bash) untuk membuat 200 file kosong dengan

Berikut ini adalah pertanyaan dari tidakbisaMtk pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas

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.

Jawaban dan Penjelasan

Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.

Perintah shell (bash) untuk persoalan ini adalah:

  • Multiline:
    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
  • Single-line (one-liner):
    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.

  • 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:Multiline:tgl=$(date +%Y%m%d)seq -w 1 200 | while read -r nomor; do    namafile=

Semoga dengan pertanyaan yang sudah terjawab oleh henriyulianto dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.

Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact

Last Update: Thu, 24 Nov 22