Como copiar todos os arquivos .c começando com a letra [h-o] para o diretório h-oFiles

1

Estou tentando realizar esse comando e é isso que tentei:

sudo cp /hw2/ladsrc/.c[a-g] /hw2/a-gFiles

O que estou fazendo de errado aqui?

    
por Jason Thomas 24.01.2016 / 05:31

2 respostas

0

Estou assumindo algumas coisas:

  1. O título da pergunta é correto
  2. O comando na questão era apenas um exemplo e não o que você digitou

Aqui está a maneira mais fácil de copiar os arquivos (como outros apontaram):

cp /hw2/ladsrc/[h-o]*.c /hw2/h-oFiles

Aqui está uma maneira melhor de fazer a cópia. Há uma pequena chance de haver muitos arquivos que atendam aos seus critérios. Se for esse o caso, o xargs é uma solução melhor. Além disso, você também pode ter espaços ou caracteres especiais nos nomes dos arquivos. Tente isto em vez disso (3 arquivos são copiados de uma só vez através da opção -n, que pode ser mais rápida do que apenas uma cópia normal):

find /hw2/ladsrc/ -name "[h-o]*.c" | xargs -n 3 -I {} cp "{}" /hw2/h-oFiles

[Nota]: Não tenho certeza porque o sudo foi usado. A descrição do problema não dizia. Se você possui os arquivos como um usuário comum, não há necessidade de usar o sudo. Se você não possui os arquivos que você está tentando copiar e tem privilégios sudo, então o sudo é necessário para fazer a cópia. Nesse caso, você desejaria usar o sinalizador -p com cp (copy) para preservar a propriedade do arquivo e as permissões de arquivo. Caso contrário, os usuários root apropriar-se-ão dos arquivos.

    
por 25.01.2016 / 03:09
0

Provavelmente você quer escrever

 sudo cp /hw2/ladsrc/[a-g]*.c /hw2/a-gFiles
    
por 24.01.2016 / 07:31

Tags