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/touchto 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 > filezdmuchnie wszystko, fileco już istnieje. Można to obejść, używając zamiast tego >> file.
Inną różnicą touchjest 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
touchsamodzielność będzie działać w ten sam sposób, niezależnie od tego, czego powinieneś używać.