Como faço para mover vários arquivos e adicionar uma extensão .pgp?

1

Eu tenho 4 arquivos em um diretório, o comando mv não moverá todos os arquivos E adicionará uma extensão .pgp.

Eu esperava manter isso na linha de comando e não criar um script. Talvez eu esteja fazendo a pergunta errada aqui / google.

4 arquivos estão em /test/ - test-1 test-2 test-3 test-4

Eu tentei mv /test/test* /test/dir/*.pgp e não funciona porque * .pgp não é um diretório.

É a única maneira de fazer isso com um loop? Além disso, teria que ser um loop for? Eu sou muito novo em scripts de shell e não muito confiante ...

    
por Emile 24.07.2017 / 17:58

3 respostas

1

Não é o único caminho, mas o melhor e mais simples é de fato um loop e de preferência um loop for. É trivial fazer:

cd /test    
for file in test*; do
    mv "$file" /test/dir/"$file".pgp
done

É isso.

    
por 24.07.2017 / 18:51
2

Você pode renomear os arquivos primeiro e movê-los:

rename 's/(.*)/$1.pgp/' test*; mv test*.pgp /test/dir
    
por 24.07.2017 / 18:15
1

Sim, um loop, um loop for, é o que deve ser usado.

Em dois passos simples:

set -- test-{1..4}
for f; do mv "$f" "dir/$f.pgp"; done
    
por 25.07.2017 / 05:39

Tags