[FUG-BR] criar arquivo vazio

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Sexta Julho 14 13:47:16 BRT 2006


debopen wrote:
> BOA TARDE A TODOS
> 
> Alguem poderia me ajudar nesta duvida
> qual a diferenca destas duas operacoes para criacao
> de um arquivo
> 
> touch teste.txt
> : > teste.txt

(eksffa em claire)~> touch a
(eksffa em claire)~> :> b
(eksffa em claire)~> ls -l a b
-rw-r--r--  1 eksffa  freebsdbrasil  0 14 Jul 13:38 a
-rw-r--r--  1 eksffa  freebsdbrasil  0 14 Jul 13:38 b
(eksffa em claire)~> cat a b
(eksffa em claire)~> stat -x a b
   File: "a"
   Size: 0            FileType: Regular File
   Mode: (0644/-rw-r--r--)         Uid: ( 1001/  eksffa)  Gid: ( 
1001/freebsdbrasil)
Device: 0,103   Inode: 1677558    Links: 1
Access: Fri Jul 14 13:38:45 2006
Modify: Fri Jul 14 13:38:36 2006
Change: Fri Jul 14 13:38:36 2006
   File: "b"
   Size: 0            FileType: Regular File
   Mode: (0644/-rw-r--r--)         Uid: ( 1001/  eksffa)  Gid: ( 
1001/freebsdbrasil)
Device: 0,103   Inode: 1677975    Links: 1
Access: Fri Jul 14 13:38:45 2006
Modify: Fri Jul 14 13:38:39 2006
Change: Fri Jul 14 13:38:39 2006
(eksffa em claire)~> touch a
(eksffa em claire)~> : > b
(eksffa em claire)~> stat -x a b
   File: "a"
   Size: 0            FileType: Regular File
   Mode: (0644/-rw-r--r--)         Uid: ( 1001/  eksffa)  Gid: ( 
1001/freebsdbrasil)
Device: 0,103   Inode: 1677558    Links: 1
Access: Fri Jul 14 13:39:20 2006
Modify: Fri Jul 14 13:39:20 2006
Change: Fri Jul 14 13:39:20 2006
   File: "b"
   Size: 0            FileType: Regular File
   Mode: (0644/-rw-r--r--)         Uid: ( 1001/  eksffa)  Gid: ( 
1001/freebsdbrasil)
Device: 0,103   Inode: 1677975    Links: 1
Access: Fri Jul 14 13:38:45 2006
Modify: Fri Jul 14 13:39:22 2006
Change: Fri Jul 14 13:39:22 2006
(eksffa em claire)~>

Notou a diferenca? Na data de Acesso?

O touch e feito para "tocar" arquivos, modificando sua data de acesso. 
Voce pode passar uma data retroativa com o argumento -t. Se o arquivo 
nao existe, cria um arquivo vazio com a data passada em -t, ou apenas 
"toca" o arquivo existente com essa data. De que outra forma voce 
modificaria data de acesso ou modificacao de um arquivo pra 3 anos 
atras? Reajustando o horario do FreeBSD? Pra isso serve o touch.

Internamente se ambos arquivos nao existem, a operacao e a mesma, com 
touch ou : >. Mas se existirem, o comportamento e outro, especialmente 
porque no caso do : > voce nao esta criando um arquivo vazio, voce esta 
garantindo que o conteudo do arquivo seja vazio. No caso do exemplo 
acima a segunda vez o comando foi usado, o arquivo "b" nao foi criado 
vazio, vazio foi o conteudo absoluto dentro do arquivo. Ele ja estava 
criado, poucos segundos antes. Cria-lo e um comportamento secundario, 
caso o arquivo nao exista. Ja, no caso do touch, se o arquivo ja 
existir, tendo ou nao conteudo, apenas a data de acesso ao arquivo sera 
modificada.


-- 
Patrick Tracanelli

FreeBSD Brasil LTDA.
(31) 3281-9633 / 3281-3547
316601 em sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"



Mais detalhes sobre a lista de discussão freebsd