Executando um comando em todos os arquivos no Linux

1

Digamos que eu queira executar um programa ou transferir arquivos pela rede usando scp, e criar uma tela e executar esses comandos na tela usando * para indicar que desejo que o comando se aplique a todos os arquivos nessa pasta. O comando só funciona nos arquivos presentes no momento em que o comando foi executado, ou funcionará em arquivos que depois eu movo / copio para a mesma pasta depois de executar o comando?

    
por Rayne 09.07.2013 / 05:29

2 respostas

5

Eu acho que ele cria uma sessão de tela e dispara um longo comando como scp ou ftp um monte de arquivos em uma pasta. Enquanto o upload ou download está sendo executado, ele adiciona mais arquivos à pasta / servidor de origem.

Bash (o shell com o qual você provavelmente está executando o comando) executará o comando apenas nos arquivos que estiverem presentes no momento da execução do comando, porque o caractere * é considerado como um padrão e substituído pelo caractere nomes de arquivos correspondentes a esse padrão.

Veja man bash

Pathname Expansion

After word splitting, unless the -f option has been set, bash scans each word for the characters *, ?, and [. If one of these characters appears, then the word is regarded as a pattern, and replaced with an alphabetically sorted list of file names matching the pattern.

    
por 09.07.2013 / 09:58
3

Eu também não sei o que você quer dizer com a criação de uma tela, mas ela só será aplicada aos arquivos presentes no momento em que você executar o comando.

    
por 09.07.2013 / 05:51

Tags