Garis crontab Anda memiliki satu atau lebih tanda bintang *
di dalamnya, yang menunjukkan "kapan saja". Ketika baris itu diganti dari substitusi perintah, hasilnya adalah seperti
echo * * * * * cmd > /path/to/file
Sementara sebagian besar ekspansi lebih lanjut tidak diterapkan pada output substitusi perintah, ekspansi pathname adalah (seperti halnya pemisahan bidang) :
Hasil substitusi perintah tidak akan diproses untuk ekspansi tilde lebih lanjut, ekspansi parameter, substitusi perintah, atau ekspansi aritmatika. Jika substitusi perintah terjadi di dalam tanda kutip ganda, pemisahan bidang dan perluasan nama jalur tidak akan dilakukan pada hasil substitusi.
Perluasan Pathname adalah apa yang berubah *.txt
menjadi daftar nama file yang cocok (globbing), di mana *
cocok dengan semuanya. Hasil akhirnya adalah Anda mendapatkan setiap nama file (tidak tersembunyi) di direktori kerja yang terdaftar untuk setiap *
di baris crontab Anda.
Anda bisa memperbaikinya dengan mengutip ekspansi, jika kode yang Anda posting adalah perwakilan dari perintah yang lebih kompleks:
sudo bash -c 'echo "$(tail -n 1 /etc/crontab)" > /path/to/file'
tetapi yang lebih jelas adalah kehilangan echo
semuanya:
sudo bash -c 'tail -n 1 /etc/crontab > /path/to/file'
Ini harus melakukan apa yang Anda inginkan dan juga lebih sederhana (satu-satunya perbedaan materi lainnya adalah bahwa versi ini akan menghilangkan pemisahan bidang yang jika tidak akan terjadi, sehingga run spasi tidak akan runtuh).