O que você realmente precisa fazer é consertar seu script para que ele converta os caminhos do Windows em caminhos Unix. Uma maneira relativamente fácil de fazer isso é tirar os separadores de caminho da equação: em vez de fornecer nomes de caminho completos para copiar, você percorre diretórios de maneira recursiva, criando diretórios de destino no lado remoto e especificando apenas o nome do arquivo em vez do caminho completo. :)
Mas até chegar a esse ponto, você precisa proteger as barras invertidas do shell. Você pode fazer isso citando usando aspas simples (as barras invertidas são interpretadas para alguns caracteres entre aspas duplas). Observe especificamente que o caractere curinga está fora das aspas, portanto, o shell o trata como um caractere curinga, em vez de um literal *
::)
rm -rv '.\'*
Ou você pode fazer isso escapando da barra invertida (o que também funcionaria entre aspas duplas, mas as aspas duplas não são necessárias aqui):
rm -rv .\*
Sugiro que, antes de remover o material usando um caractere curinga, você sempre execute ls
com os mesmos argumentos e use a seta para cima para recuperar o último comando, onde é possível alterar o ls
para um% código%. Dessa forma, você pode ver a lista de arquivos antes de removê-los, evitando um erro potencialmente grande. :) Eu também sou um grande fã de usar rm
com -v
em casos como este.
sauer@lightning:/tmp> ls -vr .\*
.\innerfile\gitkeep .\gitkeep
.\innerfile:
sauer@lightning:/tmp> rm -vr .\*
removed '.\gitkeep'
removed directory '.\innerfile'
removed '.\innerfile\gitkeep'