Você nem precisa usar :
; você pode apenas > file
(pelo menos em bash
; outras conchas podem se comportar de maneira diferente).
Em termos práticos, não há diferença real aqui (embora a sobrecarga minúscula de chamar /bin/touch
seja uma coisa).
touch
no entanto, também pode ser usado para modificar os carimbos de data e hora em um arquivo que já existe sem alterar ou apagar o conteúdo; além disso, > file
explodirá qualquer um file
que já exista. Isso pode ser contornado usando >> file
.
Outra diferença touch
é que você pode criar (ou atualizar o registro de data e hora) vários arquivos de uma vez (por exemplo touch foo bar baz quux
) com uma sintaxe mais sucinta do que com o redirecionamento, onde cada arquivo precisa de seu próprio redirecionamento (por exemplo >foo >bar >baz >quux
).
Usando 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
Usando o redirecionamento:
$ > 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
ser autônomo funcionará da mesma maneira que você deve usar.