Como usar o comando cd para acessar um diretório com espaço [duplicado]

2

Como eu uso "cd" para acessar um diretório com um espaço, por exemplo "XML 5.1 Final Fields" em um script bash

Eu tentei cd XML 5.1 Final Fields

Mas está dando o erro No such file or directory .

Este é o script:

#! /bin/bash
xmlfolder="XML/ \/5.1/ \/Final/ \/Fields"
xmlpath="/home/george/Desktop/m5u/test/$xmlfolder"
cd $xmlpath
ls /home/george/Desktop/m5u/test/    
XML 5.1 Final Fields
~/Desktop/m5u/test$ ll
drwxr-xr-x  9 george george      4096 Feb 18 12:44 XML 5.1 Final Fields

este é o erro que recebo quando executo o script

line 5: cd: /home/george/Desktop/m5u/test/XML\: No such file or directory
    
por George Ulahannan 18.02.2016 / 12:54

1 resposta

5

Sua variável xmlfolder está errada. Deve ser

xmlfolder=XML\ 5.1\ Final\ Fields

ou = "XML 5.1 Campos Finais"

Você não precisa do / no caminho, pois é apenas uma pasta. Você também não precisa do "" se também estiver usando \ . Escolha um.

desde a sua edição com o comando ls , vejo que pode haver um espaço no final do nome da sua pasta. Eu sugiro que você remova o espaço, seja renomeando no nautilus ou com o comando mv .

Se você quiser manter o espaço, o nome da variável deve ser este:

xmlfolder=XML\ 5.1\ Final\ Fields\ 

ou

xmlfolder="XML 5.1 Final Fields "

Observe que, se você usar a opção Primeira com o caractere \ , também será necessário consultar a variável com "" , ou seja, "$xmlfolder" .

O erro sugere que cd está insatisfeito com o caminho.

Tente alterar o comando cd deste

cd $xmlpath

para

cd "$xmlpath"

Para ser honesto, não é necessário cd em um script bash. Basta se referir a tudo com um caminho absoluto.

Em resumo, sua linha xmlfolder= deve ser xmlfolder=XML\ 5.1\ Final\ Fields e sua linha cd deve ser cd "xmlpath" .

    
por Tim 18.02.2016 / 13:04