Mover 1 arquivo por vez [RESOLVIDO]

1. Mover 1 arquivo por vez [RESOLVIDO]

Vitor
vitorgn

(usa openSUSE)

Enviado em 20/02/2023 - 11:07h

Ola,

Estou com um problema e não consegui encontrar nada sobre o assunto se alguem souber como auxiliar.

tenho alguns arquivos .txt que são criados na pasta1 e importados por meio de um shell, porem estou tento problemas quando existem muitos arquivos nessa pasta1, gostaria então de mover 1 arquivo de cada vez para uma pasta dentro da pasta1 ex: (pasta1/transito) porem os arquivos tem nomes aleatórios e não encontrei uma forma de mover somente 1 arquivo de cada vez.

Alguém teria alguma sugestão de como fazer um mv porem de 1 arquivo de cada vez que o shell rode?


  


2. Re: Mover 1 arquivo por vez [RESOLVIDO]

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 20/02/2023 - 11:07h

Você pode mover um arquivo por vez usando o comando mv do Linux. O comando para mover apenas um arquivo de cada vez é: mv /caminho/para/arquivo.txt /caminho/para/diretorio/transito. Se você quiser mover vários arquivos usando o mesmo comando, você pode usar o parâmetro -t depois do comando mv. Por exemplo: mv -t /caminho/para/diretorio/transito /caminho/para/arquivo1.txt /caminho/para/arquivo2.txt isso vai mover os dois arquivos para a pasta de transito.

Se você precisar mover arquivos com nomes aleatórios, pode usar a opção -t junto com o comando find. Por exemplo, se você tiver arquivos em pasta1 com nomes aleatórios e quiser mover todos os arquivos para pasta1/transito:

find /caminho/para/ pasta1 -type f -exec mv -t /caminho/para/pasta1/transito {} \;

Esse comando irá procurar por todos os arquivos na pasta1 e moverá cada arquivo individualmente para a pasta transito.


3. Re: Mover 1 arquivo por vez [RESOLVIDO]

Vitor
vitorgn

(usa openSUSE)

Enviado em 20/02/2023 - 15:40h

Ola, obrigado pela sugestão e pela ajuda, então mas nesse comando quando eu rodo ele move todos os arquivos de uma vez pra pasta transito, eu queria realmente que somente 1 deles seja movido a cada vez que o comando seja dado.

Ex: Gostaria de colocar esse comando para que rode a cada 5 min, portanto a cada 5 minutos move um dos arquivos .txt da pasta1 para pasta1/transito.




4. Re: Mover 1 arquivo por vez

Carlos A. P. Cunha
Carlos_Cunha

(usa Linux Mint)

Enviado em 20/02/2023 - 18:04h

vitorgn escreveu:

Ola,

Estou com um problema e não consegui encontrar nada sobre o assunto se alguem souber como auxiliar.

tenho alguns arquivos .txt que são criados na pasta1 e importados por meio de um shell, porem estou tento problemas quando existem muitos arquivos nessa pasta1, gostaria então de mover 1 arquivo de cada vez para uma pasta dentro da pasta1 ex: (pasta1/transito) porem os arquivos tem nomes aleatórios e não encontrei uma forma de mover somente 1 arquivo de cada vez.

Alguém teria alguma sugestão de como fazer um mv porem de 1 arquivo de cada vez que o shell rode?



Daria para fazer um script com for e sleep

Moveria apenas um arquivo e sairia do script


#!/bin/bash

CAMINHO="/tmp/destino/fim/"


for i in $(cd /tmp/*.txt) ; do
mv $i $CAMINHO
exit 0
done



Agora se quer mover um arquivo por minuto...


#!/bin/bash

CAMINHO="/tmp/destino/fim/"


for i in $(cd /tmp/*.txt) ; do
mv $i $CAMINHO
sleep 60
done




#-------------------------------------------------------------------------------------#
"Falar é fácil, me mostre o código." - Linus Torvalds
#-------------------------------------------------------------------------------------#



5. Re: Mover 1 arquivo por vez [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 20/02/2023 - 18:47h


vitorgn escreveu:

Ola,

Estou com um problema e não consegui encontrar nada sobre o assunto se alguem souber como auxiliar.

tenho alguns arquivos .txt que são criados na pasta1 e importados por meio de um shell, porem estou tento problemas quando existem muitos arquivos nessa pasta1, gostaria então de mover 1 arquivo de cada vez para uma pasta dentro da pasta1 ex: (pasta1/transito) porem os arquivos tem nomes aleatórios e não encontrei uma forma de mover somente 1 arquivo de cada vez.

Alguém teria alguma sugestão de como fazer um mv porem de 1 arquivo de cada vez que o shell rode?

Boa noite Vitor, segue sugestão:

for arq in /pasta1/*.txt;do
mv ${arq} /pasta01/transito/;
wait;sleep 0.25;
done

É isso...

______________________________________________________________________
Importante:
Se te ajudei.... Retribua, é simples.
Após marcar o tópico como Resolvido,
escolha a Melhor Resposta.
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts