Organizar seus arquivos por pastas

Publicado por Zart Rock (última atualização em 16/01/2017)

[ Hits: 6.807 ]

Download 6456.organizador_por_pastas_v3.sh

Download organizador_pastas.sh (versão 2)




Esse script organiza todos os arquivos de uma determinada pasta em subpastas definidas para o usuário.

Utilização:

1) Jogue esse script em uma pastas que deseja organizar os arquivos.

2) Crie as pastas com uma palavra de referência para seus arquivos:    Ex.: Seus Arquivos-> Alguma_Coisa.txt, alguma_coisa_02.mp4, ALGUMA COISA 03.mp4, outra coisa 01.mp3

O nome da pasta pode ser Coisa, não importando se as letras são maiúsculas ou minúsculas

3) Entre na pasta(alvo) pelo terminal e execute o script:   ./<nomedoscript>.sh

Obs.: para não haver conflito, as pastas devem ter nomes únicos de seus arquivos. Além do script deixar os nomes dos arquivos em minúsculo.

  



Versões atualizadas deste script

Versão 2 - Enviado por Zart Rock em 03/12/2016

Changelog: Atualização: Corrigido o erro ao mover arquivos quando possuía 10 ou mais arquivos em uma determinada seleção.

Download organizador_pastas.sh


Esconder código-fonte

#!/bin/bash
#
#Utilização:
#   1)Jogue esse scritp em uma pastas que deseja organizar as midias
#   2)Crie as pastas com uma palavra de referência para suas mídias:
#      Ex: Seus Arquivos: Alguma_Coisa.mp3, alguma_coisa_02.mp4, ALGUMA COISA 03.mp4, outra coisa 01.mp4
#      O nome da pasta pode ser Coisa, não importando se as letras são maiúsculas ou minúsculas
#   
#   3)Entre na pasta das suas mídias pelo terminal e digite: ./<nomedoscript>.sh


ls -d */>pastas_antes.txt #Lista os diretórios atuais em um arquivo 
num_dir=`wc -l pastas_antes.txt | cut -c 1`



#Transformas todos os arquivos/pastas para minúsculo e tirar os espaços
for i in *
    do
        arq_final=`echo "$i" |tr [:upper:] [:lower:]`    
        arq_final=${arq_final// /_}
   mv "$i" $arq_final 
done




#Começar a organizar 
ls -d */>pastas.txt #



for i in {1..99};
do
   D=`cat pastas.txt| sed -n -e "$i"p` #Pega o nome da primeira pasta ex:"Exemplo/"
   D_nome=${D//// } #Retirar o "/" para ficar somente o nome
   ls *.mp4 | grep $D_nome>midias.txt
   num_arq=`wc -l midias.txt | cut -c 1`
   
   if [[ "$num_arq" -ne "0" ]]; then
      for count in {1..99};
      do      
         a=`cat midias.txt| sed -n -e "$count"p`   
         mv "$a" "$D"      
   
         if [[ "$count" -eq "$num_arq" ]]; then
            echo "Parou_ARQ"            
            break 
         fi      
      done   
   fi


   if [[ "$i" -eq "$num_dir" ]]; then
      echo "Parou"      
      break 
   fi   
done

#Voltar com os nomes antigos
for i in {1..99};
do 
   D_anterior=`cat pastas_antes.txt| sed -n -e "$i"p`
   D_atual=`cat pastas.txt| sed -n -e "$i"p`
   mv $D_atual $D_anterior
   if [[ "$i" -eq "$num_dir" ]]; then
      echo "Parou"      
      break 
   fi
done

#Remover aquivos extras
rm pastas.txt
rm pastas_antes.txt
rm midias.txt

Scripts recomendados

Script para enviar put para uma API usando curl e dados no formato json

Pegar MAC através do IP na rede interna

Diversao em Shell

Indice Bovespa

Procura Arquivos


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário