Verificando arquivos em uma pasta diferente usando o loop for

1

Eu tenho 2 pasta - pasta1 e pasta2.

Estou na pasta1 e preciso executar um script que procurará todos os arquivos csv na pasta2.

O script atual verifica * .csv na pasta atual ... como apontar para a pasta2?

for file in *.csv
do
  split -l 50000 -d -a 4  "$file" "$file"
done
    
por user1050619 30.04.2014 / 01:55

2 respostas

5

Assumindo que folder1 e folder2 estão abaixo da pasta parent ,

parent
   folder1
   folder2

Você pode reformular o seu loop for,

for file in ../folder2/*.csv

Como regra geral, você sempre pode fornecer caminhos absolutos para esses loops:

for file in /home/username/parent/folder2/*.csv
do
    split -l 50000 -d -a 4  "$file" "$file"
done

O loop acima funcionará independentemente do diretório em que você estiver.

    
por 30.04.2014 / 02:04
3

Você pode usar pushd e popd sempre que precisar alterar o diretório de algumas operações e depois alterá-lo de volta para o original.

pushd /path/to/folder2
for file in *.csv
do
  split -l 50000 -d -a 4  "$file" "$file"
done
popd
    
por 30.04.2014 / 02:11