Untuk utilitas GNU, dokumentasi lengkap ada di info
halaman, tempat Anda dapat membaca:
-f
Diabaikan; untuk kompatibilitas dengan versi BSD `touch '.
Lihat halaman manual BSD bersejarah untuk disentuh , di mana -f
harus memaksa sentuhan.
Jika Anda melihat sumber BSD lama itu, tidak ada utimes()
panggilan sistem, jadi touch
akan membuka file dalam mode baca + tulis, baca satu byte, cari kembali dan tulis lagi untuk memperbarui akses terakhir dan waktu modifikasi terakhir .
Jelas, Anda memerlukan izin baca dan tulis ( touch
akan menghindari mencoba melakukan itu jika access(W_OK|R_OK)
dikembalikan salah ). -f
mencoba mengatasinya dengan mengubah sementara izin untuk sementara ke 0666 !
0666 berarti membaca dan menulis izin untuk semua orang. Pasti seperti itu (seperti dengan izin yang lebih ketat seperti 0600 yang masih mengizinkan sentuhan ) yang dapat berarti selama jendela pendek itu, proses yang seharusnya memiliki izin baca atau tulis ke file tidak bisa lagi , melanggar fungsionalitas .
Namun itu berarti bahwa proses yang seharusnya tidak memiliki akses ke file sekarang memiliki peluang pendek untuk membukanya, melanggar keamanan .
Itu bukan hal yang sangat masuk akal untuk dilakukan. touch
Implementasi modern tidak melakukan itu. Sejak itu, utime()
system call telah diperkenalkan, memungkinkan perubahan modifikasi dan waktu akses secara terpisah tanpa harus berbaur dengan konten file (yang berarti juga berfungsi dengan file non-reguler) dan hanya perlu akses tulis untuk itu.
GNU touch
masih tidak gagal jika melewati -f
opsi, tetapi mengabaikan bendera. Dengan begitu, skrip yang ditulis untuk versi BSD lama itu tidak gagal saat diporting ke sistem GNU. Tidak banyak yang relevan saat ini.
-f
sebagai opsi hanya diabaikan. Mungkin hancur melalui argumen parser dan hanya itu.