Non hai nemmeno bisogno di usare :; puoi semplicemente > file(almeno in bash; altre shell possono comportarsi diversamente).
In termini pratici, non vi è alcuna reale differenza qui (anche se il minimo sovraccarico di chiamare /bin/touchè una cosa).
touch, tuttavia, può anche essere utilizzato per modificare i timestamp su un file che esiste già senza cambiare o cancellare il contenuto; inoltre, > filespazzerà via tutto fileciò che esiste già. Questo può essere aggirato invece usando >> file.
Un'altra differenza touchè che puoi far sì che crei (o aggiorni il timestamp su) più file contemporaneamente (ad es. touch foo bar baz quux) Con una sintassi più concisa rispetto al reindirizzamento, dove ogni file ha bisogno del proprio reindirizzamento (ad es >foo >bar >baz >quux.).
Utilizzando 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
Utilizzando il reindirizzamento:
$ > 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
touchessere autonomo funzionerà allo stesso modo qualunque cosa tu debba usare.