touch: não pode tocar em arquivo: nenhum arquivo ou diretório [duplicado]

14
    

Esta pergunta já tem uma resposta aqui:

    

Estou recebendo o erro:

touch: cannot touch '/opt/tsrm/compliance/cme/log/20121207.log': No such file or directory

no comando de toque: touch $LOGFILE

Também verifiquei o link: touch: cannot touch 'foo': Não existe esse arquivo ou diretório , mas eu não entendi a resposta.

Nota: eu também estava recebendo mkdir: cannot create directory ; Eu corrijo isso adicionando a opção -p .

Isso pode ser algo com a versão do Linux em que estou trabalhando?

    
por Swagatika 07.12.2012 / 08:50

4 respostas

15

Você não tem o caminho que contém o arquivo:

/opt/tsrm/compliance/cme/log/

É daí que vem o erro.

    
por 07.12.2012 / 08:57
6

Parece que você digitou incorretamente o caminho. Por exemplo, esta pasta /stuff/more_stuff não existe. Isso me dá o resultado:

user@linux:~ $ touch /stuff/more_stuff/stuff.file
touch: cannot touch '/stuff/more_stuff/stuff.file': No such file or directory

Tanto /stuff como /stuff/more_stuff precisam existir para que touch funcione.

    
por 07.12.2012 / 08:57
3

Sim, pode haver chances de erro de digitação ou diretório não existir.

LOGFILE="/opt/tsrm/compliance/cme/log/20121207.log"
LOG_DIR='dirname $LOGFILE'
[ ! -d $LOG_DIR ] && mkdir -p $LOG_DIR
touch $LOGFILE
    
por 07.12.2012 / 11:48
0

Por mais boba que essa resposta pareça, além do diretório ausente, pode haver um delimitador de cadeia ao redor do valor em $LOGFILE

Trabalhando:

LOGFILE=/stuff/more_stuff/stuff.file
touch $LOGFILE

Não funciona:

LOGFILE="/stuff/more_stuff/stuff.file"
touch $LOGFILE

Alguma distro do Linux tem o capricho acima, então seja cuidadoso;)

    
por 22.10.2017 / 13:59