tar --files-from reclama “Não é possível stat: Nenhum tal arquivo ou diretório”

1

Quando eu digito:

tar -cvf ~/changeset.tar --files-from ~/changeset.txt

responde com este resultado:

tar:  admin/memberinformation.php            : Cannot stat: No such file or directory
tar:  business/clsPreferredAgencies.php      : Cannot stat: No such file or directory
tar:  business/clsPreferredAgencies_test.php : Cannot stat: No such file or directory
tar:  business/clscustomer.php               : Cannot stat: No such file or directory
tar:  business/clsfeedback.php               : Cannot stat: No such file or directory
tar:  business/clsleads.php                  : Cannot stat: No such file or directory
tar:  business/connection.php                : Cannot stat: No such file or directory
tar:  crons/daily_activity.php               : Cannot stat: No such file or directory
tar:  crons/not_closed_orders2.php           : Cannot stat: No such file or directory
tar:  crons/unaccepted_orders2.php           : Cannot stat: No such file or directory
tar:  js/jquery-1.4.2.js                     : Cannot stat: No such file or directory
tar:  sql/alter-project.sql                  : Cannot stat: No such file or directory
tar:  sql/buyerName.php                      : Cannot stat: No such file or directory
tar:  sql/preferredAgencies.sql              : Cannot stat: No such file or directory
tar:  sql/underwriters_list.sql              : Cannot stat: No such file or directory
tar:  user/close_selectedporject.php         : Cannot stat: No such file or directory
tar:  user/feedback.php                      : Cannot stat: No such file or directory
tar:  user/forum.php                         : Cannot stat: No such file or directory
tar:  user/initiatelead.php                  : Cannot stat: No such file or directory
tar:  user/leadprocess_detail.php            : Cannot stat: No such file or directory
tar:  user/mem_direc.php                     : Cannot stat: No such file or directory
tar:  user/qws.php                           : Cannot stat: No such file or directory
tar:  user/view_leaddetails.php              : Cannot stat: No such file or directory
tar:  user/viewfeedbackforusers.php          : Cannot stat: No such file or directory
tar:  user/viewfeedbacks.php                 : Cannot stat: No such file or directory
tar: Error exit delayed from previous errors
lsiden@lsiden2:~/titan$ ls admin/memberinformation.php 
admin/memberinformation.php

Aqui está o conteúdo de ~ / changeset.txt . Em outras palavras, um monte de caminhos relativos. Como uma verificação de sanidade:

$ ls admin/memberinformation.php 
admin/memberinformation.php

Por que o tar não pode encontrar nenhum desses arquivos, apesar de estarem claramente acessíveis a partir do diretório atual, com os caminhos relativos dados?

FYI:

$ tar --version
tar (GNU tar) 1.15.1
    
por Larry 02.08.2010 / 16:51

5 respostas

5

Você tem um espaço extra no início de cada linha em changeset.txt .

EDIT : Além disso, você por acaso criou changeset.txt em uma máquina Windows? Nesse caso, pode haver um caractere ^M extra no final de cada linha. A maioria dos programas unix considerará esse caractere como parte da linha (aqui, parte do nome do arquivo), enquanto o Windows considera a parte ^M da sequência de nova linha. Você pode ver se esse é o caso executando cat -A changeset.txt : normalmente, deve haver apenas $ no final de cada linha; Se você ver ^M$ , você tem um arquivo do Windows. O comando dos2unix está frequentemente disponível para converter os finais de linha.

    
por 02.08.2010 / 22:50
1

Eu tive esse mesmo problema no meu Mac (Darwin Kernel Version 10.8.0)

Descobrimos que duas das linhas no meu arquivo.txt tinham um espaço em branco extra no final da linha. Uma vez que eu apaguei o espaço em branco no final das linhas, funcionou bem. Confirmei isso adicionando novamente um espaço em branco ao final de uma linha e ele falhou com um erro declarando:

Cannot stat: No such file or directory

Portanto, parece que um espaço em branco extra em qualquer lugar ou uma linha em branco extra causará uma falha.

Além disso, FWIW, consegui especificar um arquivo que continha um dos itens a seguir:

./src/com/blarg/foo.java

ou

src/com/blarg/foo.java

então, de qualquer forma, tudo bem. é apenas aquele espaço em branco que é o problema.

    
por 22.09.2011 / 21:19
1

no Ubuntu 10.04, tar --files-from ou -T opções

quando a última linha contém espaço, o tar falhou. Se você adicionar uma linha em branco no final, ela será executada.

    
por 30.06.2011 / 13:46
0

O mais provável é que o alcatrão adoraria ser notado sobre o caminho atual. Então, ao invés de

admin/memberinformation.php

o changeset.txt deve ler

./admin/memberinformation.php

ou, alternativamente, conter o caminho completo.

    
por 02.08.2010 / 16:55
0

Eu consegui que funcionasse:

tar cvf ~/changeset.tar 'cat ../changeset.txt'
    
por 04.08.2010 / 05:48

Tags