Argumento inválido ao mover itens para o novo diretório. Comando funciona de qualquer maneira

1

Aqui estão os passos que eu dei:

cd ~

nano .bash_profile

alias dtcl='cd ~/Desktop; mv * Desktop\ Cleanup'

Ctrl - X

Y

Save

Se eu executar dtcl , isso funcionará totalmente. Ele move tudo da área de trabalho para uma nova pasta chamada Desktop Cleanup, que é exatamente o que eu queria fazer, no entanto, terminal me dá a seguinte saída também:

mv: rename Desktop Cleanup to Desktop Cleanup/Desktop Cleanup: Invalid argument

Como eu já estou na pasta onde quero criar o diretório, que ainda não existe, por que ele pensaria que eu estava tentando criar uma pasta dentro de uma pasta?

Apenas curioso, obrigado!

    
por nuclearsalt 09.05.2014 / 20:51

3 respostas

1

Parece que você está tentando mover tudo na pasta Desktop para outra pasta dentro da pasta Desktop. Essencialmente, você está tentando mover a pasta "Desktop Cleanup" para dentro dela (já que está localizada na área de trabalho), e isso é ilegal.

Mova "Limpeza da área de trabalho" para outro local ou use um regex que capture todos os arquivos, exceto essa pasta.

    
por 09.05.2014 / 21:11
1

Com o bash, você pode fazer isso:

shopt -s extglob
mv !("Desktop Cleanup") "Desktop Cleanup"

Mova tudo o que estiver não Desktop \ Cleanup para esse diretório.

    
por 09.05.2014 / 23:45
0

Como afirma o Traveling Tech Guy, você está tentando mover "Desktop Cleanup" para si mesmo. Além disso, você não precisa tornar atual o diretório do qual deseja mover os arquivos.

Se você não quiser alterar a posição do diretório "Desktop Cleanup", poderá suprimir o eco de erro no terminal com 2>/dev/null Você pode modificar seu alias da seguinte maneira

alias dtcl='mv ~/Desktop/* Desktop\ Cleanup 2>/dev/null'
    
por 09.05.2014 / 22:01