Untuk utilitas GNU, dokumentasi lengkap ada di infohalaman, tempat Anda dapat membaca:
-f
Diabaikan; untuk kompatibilitas dengan versi BSD `touch '.
Lihat halaman manual BSD bersejarah untuk disentuh , di mana -fharus memaksa sentuhan.
Jika Anda melihat sumber BSD lama itu, tidak ada utimes()panggilan sistem, jadi touchakan 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 ( touchakan menghindari mencoba melakukan itu jika access(W_OK|R_OK)dikembalikan salah ). -fmencoba 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. touchImplementasi 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 touchmasih tidak gagal jika melewati -fopsi, 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.
-fsebagai opsi hanya diabaikan. Mungkin hancur melalui argumen parser dan hanya itu.