Em vez de analisar find
output (muito má ideia), você pode aproveitar o fato de que for
faz um loop sobre os arquivos de uma forma ordenada:
i=0; for b in /path/to/files/b*; do (( ++i < 4 )) && echo mv -v -- "$b" /path/to/destination; done
Remover echo
após o teste para mover os arquivos.
Aqui está com comentários feios:
# set a variable to 0 so we can increment it
i=0
# glob for the files starting with b
for b in /path/to/files/b*; do
# test how many times the loop has been run and if it's less than 4...
(( ++i < 4 )) &&
# ... then move the files*
echo mv -v -- "$b" /path/to/destination
done
* Isso não acontecerá até que você remova echo
do início da linha - em vez disso, ele irá ecoar quais arquivos serão movidos e onde (expandir as variáveis para cada iteração)
Eu não sei se isso funciona no tcsh, mas funciona no bash, então pode ajudar outros usuários do Ubuntu que usam principalmente o bash