Estou brincando com FTP através da linha de comando e tenho dois problemas. Não consigo renomear ou inserir pastas como:
dir /home/folder1/Human (2012)
Tentei:
cd ~/folder1/Human\ (2012)
Aqui recebo uma mensagem que the folder does not exist
.
mv ~/folder1/Human\ (2012)
Nesse caso, recebo uma mensagem que diz:
syntaxfailure at (
Como posso resolver esse problema?
Responder1
Você poderia citar duas vezes seu caminho:
cd ~/"folder1/Human (2012)"
ou você deve fornecer uma sequência de escape para (
e )
( espaço) (já que são caracteres especiais):
cd ~/folder1/Human\ \(2012\)
e
mv ~/"folder1/Human (2012)"
Com sequência de escape:
mv ~/folder1/Human\ \(2012\)
Responder2
Você tem a ideia certa com o \
antes do espaço. Isso se aplica a todos os caracteres especiais – incluindo parênteses. Coloque uma barra invertida antes do parêntese aberto e outra barra invertida antes do parêntese fechado e funcionará.
O preenchimento com tabulação é útil nesses casos... se você começar a digitar o nome do arquivo e pressionar Tab, o restante do nome do arquivo será preenchido automaticamente, inserindo barras invertidas quando necessário. (Se você não digitou o nome do arquivo o suficiente para deixar claro qual arquivo você quer dizer, o bash ainda preencherá automaticamente o máximo possível do nome do arquivo. Pressionar tab duas vezes mostrará uma lista de possíveis conclusões do nome do arquivo.)
Responder3
Concordo com o snoop que a maneira de fazer isso é usar "
marcas ao especificar um arquivo ou diretório.
No entanto, se houver vários diretórios que precisam ser renomeados, você poderá rename
renomeá-los para nomes mais amigáveis. Renomear funciona de maneira semelhante, sed
exceto rename
renomear arquivos e diretórios, embora sed
geralmente seja 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 isto:
Human2012
Human2011
Human2010
Execute o seguinte comando para obter mais informações:
man rename