Como posso inserir e também renomear pastas como '' Humano (2012) ''? [duplicado]

2

Estou jogando com o FTP através da linha de comando e obtenho dois problemas. Não consigo renomear ou inserir pastas como:

dir /home/folder1/Human (2012)

Eu tentei:

cd ~/folder1/Human\ (2012)

Aqui eu recebo uma mensagem que the folder does not exist .

mv ~/folder1/Human\ (2012)

Neste caso, recebo uma mensagem que diz:

syntaxfailure at (

Como posso resolver este problema?

    
por Martin Šanta 04.10.2015 / 06:11

3 respostas

11

Você pode citar duas vezes seu caminho:

cd ~/"folder1/Human (2012)"

ou você deve fornecer uma seqüência de escape para ( , ) e (espaço) (pois são caracteres especiais):

cd ~/folder1/Human\ \(2012\)

e

mv ~/"folder1/Human (2012)"

Com sequência de escape:

mv ~/folder1/Human\ \(2012\)
    
por snoop 04.10.2015 / 06:38
8

Você tem a ideia certa com o \ antes do espaço. Isso se aplica a todos os caracteres especiais - parênteses incluídos. Coloque uma barra invertida antes do paren aberto e outra barra invertida antes do fim do paren e ele funcionará.

O preenchimento de tabulação é útil nesses casos ... se você começar a digitar o nome do arquivo e pressionar a tecla Tab , ele completará automaticamente o restante do nome do arquivo, inserindo barras invertidas onde necessário. (Se você não digitou o suficiente do nome do arquivo para que ele seja inequívoco em qual arquivo você quer dizer, o bash ainda completará automaticamente o máximo do nome do arquivo. Pressionando a guia duas vezes, será mostrada uma lista de possíveis finalizações do nome do arquivo. / p>     

por Wildcard 04.10.2015 / 06:36
2

Concordo com o bisbilhote de que a maneira de fazer isso é usar " marcas quando você especifica um arquivo ou diretório.

No entanto, se houver vários diretórios que precisem ser renomeados, você poderá usar rename para renomeá-los para nomes mais amigáveis. Renomear funciona de forma semelhante a sed , exceto rename renomear arquivos e diretórios, enquanto sed é geralmente usado para editar o conteúdo dos arquivos. Aqui está um exemplo:

rename 's/ //g;s/\(//g;s/\)//g' ~/folder1/*

Então, se você tivesse os seguintes diretórios localizados em ~/folder1 :

Human (2012)
Human (2011)
Human (2010)

eles serão renomeados para isso:

Human2012
Human2011
Human2010

Execute o seguinte comando para mais informações:

man rename
    
por mchid 04.10.2015 / 07:58