Nie musisz nawet używać :
; możesz po prostu > file
(przynajmniej w bash
; inne powłoki mogą zachowywać się inaczej).
W praktyce nie ma tutaj prawdziwej różnicy (choć drobny narzut związany z wzywaniem /bin/touch
to rzecz).
touch
, jednak można go również użyć do zmodyfikowania znaczników czasu w pliku, który już istnieje, bez zmiany lub usunięcia zawartości; ponadto > file
zdmuchnie wszystko, file
co już istnieje. Można to obejść, używając zamiast tego >> file
.
Inną różnicą touch
jest to, że możesz utworzyć (lub zaktualizować znacznik czasu) wielu plików jednocześnie (np. touch foo bar baz quux
) Z bardziej zwięzłą składnią niż z przekierowaniem, gdzie każdy plik wymaga własnego przekierowania (np >foo >bar >baz >quux
.).
Używanie touch
:
$ touch foo; stat -x foo; sleep 2; touch foo; stat -x foo
File: "foo"
Size: 0 FileType: Regular File
Mode: (0644/-rw-r--r--) Uid: (991148597/redacted) Gid: (1640268302/redacted)
Device: 1,5 Inode: 8597208698 Links: 1
Access: Fri May 25 10:55:19 2018
Modify: Fri May 25 10:55:19 2018
Change: Fri May 25 10:55:19 2018
File: "foo"
Size: 0 FileType: Regular File
Mode: (0644/-rw-r--r--) Uid: (991148597/redacted) Gid: (1640268302/redacted)
Device: 1,5 Inode: 8597208698 Links: 1
Access: Fri May 25 10:55:21 2018
Modify: Fri May 25 10:55:21 2018
Change: Fri May 25 10:55:21 2018
Korzystanie z przekierowania:
$ > foo; stat -x foo; sleep 2; >> foo; stat -x foo
File: "foo"
Size: 0 FileType: Regular File
Mode: (0644/-rw-r--r--) Uid: (991148597/redacted) Gid: (1640268302/redacted)
Device: 1,5 Inode: 8597208698 Links: 1
Access: Fri May 25 10:55:21 2018
Modify: Fri May 25 10:56:25 2018
Change: Fri May 25 10:56:25 2018
File: "foo"
Size: 0 FileType: Regular File
Mode: (0644/-rw-r--r--) Uid: (991148597/redacted) Gid: (1640268302/redacted)
Device: 1,5 Inode: 8597208698 Links: 1
Access: Fri May 25 10:55:21 2018
Modify: Fri May 25 10:56:25 2018
Change: Fri May 25 10:56:25 2018
touch
samodzielność będzie działać w ten sam sposób, niezależnie od tego, czego powinieneś używać.