mv comando com curinga de caminho contendo cadeia aleatória

3

Estou tentando mover um arquivo para um caminho que tem uma string aleatória que não posso saber antecipadamente ~/.config/foldername/45fhiu84.dev-edition/subfolder/

Eu tentei

mv ~/Downloads/myfile.txt ~/.config/foldername/*.dev-edition/subfolder/myfile.txt

bem como

mv ~/Downloads/myfile.txt ~/".config/foldername/"*".dev-edition/subfolder/myfile.txt"
    
por myol 01.05.2016 / 15:10

2 respostas

2

Como Stephen Kitt apontou, o seguinte só funciona corretamente se houver zero ou um diretório correspondente. Se houver mais, o glob corresponderá a todos eles, e você acabará movendo o arquivo e todos menos o último diretório para o último diretório correspondente. Tome cuidado.

Quando o shell vê um asterisco (ou um ponto de interrogação), ele tenta encontrar um caminho que corresponda à expressão. Desde que você incluiu "myfile.txt" no final do caminho, o shell irá procurá-lo e, se não encontrá-lo, a correspondência falhará.

Portanto, para mover esse arquivo para esse diretório, use:

mv ~/Downloads/myfile.txt ~/.config/foldername/*.dev-edition/subfolder/

(ou seja, apenas omitir o nome do arquivo.)

Se você quiser mover o arquivo e alterar seu nome, faça isso em duas etapas:

mv ~/Downloads/myfile.txt ~/Downloads/newname.txt
mv ~/Downloads/newname.txt ~/.config/foldername/*.dev-edition/subfolder/
    
por 01.05.2016 / 15:24
-1

Outra abordagem ...

mv ~/Downloads/myfile.txt $(echo ~/.config/foldername/*.dev-edition/subfolder/)myfile.txt

Obrigado! = D

    
por 23.05.2018 / 16:06