Apa perintah 'sentuh' ketika diterapkan ke direktori?
$ mkdir test
$ ls -l test
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test
$ touch test
$ ls -l
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test
Apa perintah 'sentuh' ketika diterapkan ke direktori?
$ mkdir test
$ ls -l test
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test
$ touch test
$ ls -l
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test
Jawaban:
Seperti yang dinyatakan dalam manual , penggunaan utama touch
adalah:
Perbarui waktu akses dan modifikasi setiap FILE ke waktu saat ini.
Sehingga memperbarui waktu akses dan modifikasi direktori.
Contoh di atas tidak memperjelas bahwa "sentuhan" menetapkan waktu direktori (waktu baru dalam daftar sama dengan aslinya, hanya karena sentuhannya begitu cepat setelah direktori dibuat). Ya, definisi "FILE" dalam dokumentasi tidak termasuk direktori, sehingga Anda dapat menggunakan sentuhan untuk mengubah cap waktu mereka, TAPI ...
Ada beberapa situasi di mana Anda tidak dapat mengubah stempel waktu direktori (untuk beberapa jenis direktori yang dipasang dari jarak jauh) bahkan jika Anda memiliki izin untuk melakukan hal lain. misalnya pemasangan NFS ini:
$ touch -d "2014-07-02 12:15" /public/test.dir
touch: setting times of ‘/public/test.dir’: Operation not permitted
Anda juga dapat mengalami masalah dengan beberapa tanggal lama yang tidak didukung di beberapa server, misalnya:
$ mkdir /Acer/kopies/test.dir
$ ls -ald /Acer/kopies/test.dir
drwxr-xr-x 2 mark aitchison 0 Mar 11 17:40 /Acer/kopies/test.dir
Ini bekerja:
$ touch "2014-04-01 00:00" /Acer/kopies/test.dir
$ ls -ald /Acer/kopies/test.dir
drwxr-xr-x 2 mark aitchison 0 Apr 1 2014 /Acer/kopies/test.dir
Ini akan bekerja pada dir lokal tetapi memberikan tanggal aneh di bawah Samba mount:
$ touch -d "1955-07-02 12:15" /Acer/kopies/test.dir
$ ls -ald /Acer/kopies/test.dir
drwxr-xr-x 2 mark aitchison 0 Nov 26 60410 /Acer/kopies/test.dir
~~~~~~~~~~~~~
touch
adalah program Unix standar yang digunakan untuk mengubah akses file dan cap waktu modifikasi. Ini juga digunakan untuk membuat file kosong baru.Single Unix Spesifikasi (SUS) menentukan bahwa sentuhan harus mengubah waktu akses, waktu modifikasi, atau keduanya, untuk file. File diidentifikasi oleh nama path yang disediakan sebagai argumen tunggal. Ini juga menentukan bahwa jika file yang diidentifikasi tidak ada, file dibuat dan waktu akses dan modifikasi ditetapkan seperti yang ditentukan. Jika tidak ada cap waktu yang ditentukan, sentuh menggunakan waktu saat ini.
-Wikipedia
Anda dapat menemukan informasi lebih mendalam tentang touch
perintah (atau perintah lain yang ingin Anda ketahui) dengan menggunakan man
perintah seperti ini:
man touch
Alasan langsung untuk pertanyaan ini adalah kenyataan bahwa resolusi waktu default ls -l
adalah dalam hitungan menit, sehingga entri sistem file yang disentuh dalam menit yang sama akan muncul persis sama di ls -l
output default .
Solusi untuk ini dijelaskan di /superuser/355318/how-to-have-linux-ls-command-show-second-in-time-stamp
dan pada dasarnya melibatkan berlari ls -l --time-style=full-iso
sebagai gantinya.