Mover arquivos pelo tamanho

0

Eu tenho um pequeno exercício introdutório para fazer como lição de casa, eu tenho que fazer um pequeno script que leva 2 argumentos, primeiro argumento, um diretório, o segundo argumento, um número.

A funcionalidade é classificar os arquivos do diretório em dois subdiretórios. Primeiro subdiretório para arquivos maiores que o segundo argumento e o segundo subdiretório para arquivos menores.

Meu pensamento foi tirar $ 5 de ls -l, mas eu acho que não é uma boa idéia, alguém pode me dar alguma recomendação? Obrigado.

    
por Arnau Martínez 26.02.2018 / 18:57

1 resposta

2

Como você afirmou, não analisa a saída ls .

Você pode verificar o tamanho do arquivo com stat -c '%s' file (bytes) em um loop for . Como entrada:

#!/bin/bash

cd "$1"

for file in *; do
    # code/tests here on each "$file"
done

Então você pode usar a bash arithmetic para fazer algumas condições sobre o tamanho do arquivo.

Teste você mesmo para implementar isso, e sinta-se à vontade para editar (e / ou comentar) sua postagem se você tiver algum problema com o código

Outra solução (de comentários), use com o -size mudar se você se lembra que seu professor falou dessa ferramenta, ex:

find "$1" -size +100

Verifique

man find | less +/-size
    
por 26.02.2018 / 19:03