Operações com arquivos no shell
Excluindo arquivos com mais de 90 dias:
find pasta -mtime +90 -type f -exec rm -f {} \;
(altere o +90 para -90 para pegar arquivos com menos de 90 dias)
Excluindo arquivos com uma determinada extensão:
find pasta -type f -name *.sql -exec rm -f {} \;
Excluindo pastas vazias:
find pasta -type d -empty -exec rm -Rf {} \;
Excluindo arquivos vazios:
find pasta -type f -empty -exec rm -f {} \;
Para listar os arquivos ao invés de excluir, troque o rm -f
por ls -l
.
Extraindo arquivos existentes em sub-pastas:
for file in `find *`; do
gunzip "${file}" ; done
Mesclando vários arquivos em um só:
find . -type f -name 'access-*.log' -exec cat {} + >> output.file
Gerando log com o goaccess:
goaccess output.log -a -o log.html
Substituindo texto em um arquivo
sed -i 's/procurar/substituir/g' arquivo.txt
Dividindo um arquivo em partes:
Dividir o arquivo lista.txt em partes de 1000 linhas cada.
Cada parte do arquivo será chamada parte1.txt, parte2.txt etc.
split -l 1000 lista.txt parte
Extrair um arquivo tgz:
tar -zxvf arquivo.tgz
Extrair um arquivo específico que está dentro do tgz:
tar -zxvf arquivo.tgz arquivo_interno.txt
Comprimindo uma pasta/arquivo no formato tgz:
tar -cvpzf arquivo.tgz pasta
Caso o arquivo seja .tar, basta tirar o z do comando:
tar -xvf arquivo.tar