Como copiar arquivos aleatoriamente no Linux

Copiar ou mover uma quantidade de arquivos, de um diretório no seu sistema, para outro, em ordem aleatória, tem suas utilidades.
Se você tem uma pequena caixa de som, com entrada USB ou cartão SD e quer ouvir suas músicas em ordem aleatória, misturadas ao acaso, mas não tem o botão random ou shuffle no aparelho — a solução é garantir que as músicas já estejam em ordem aleatória no seu dispositivo de armazenamento.
Este problema é interessante e possui várias formas de ser resolvido, no GNU/Linux.
Vamos conhecer algumas.
Antes de começar, contudo, recomendo copiar todas as músicas que você pretende envolver no processo para um outro diretório e fazer a operação a partir dele. Se algo der errado, as chances de perder arquivos é menor.

Use o comando shuf no Linux

Se você tem o aplicativo shuf (shuffle, quer dizer embaralhar) instalado, pode resolver o problema com uma linha de comando simples.
No exemplo abaixo, as músicas estão todas juntas em uma pasta chamada ‘origem’. Serão copiadas para a pasta ‘destino’.

shuf -zen200 origem/* | xargs -0 mv -t destino

Explicando o comando shuf -zen200 — com seus 3 parâmetros:

  • -z — finaliza cada linha (da lista de arquivos que vai ser criada na memória) com um 0 byte
  • -e — trata cada argumento como uma nova linha input
  • -n200 — determina a quantidade de linhas a ser processada. Altere o valor para quantidade de arquivos presente no seu diretório

O utilitário xargs cria e executa a linha de comando a partir da saída fornecida pelo shuf.
De acordo com o manual do xargs, a opção ‘-0’ indica que os itens terminam com um caractere null (sem valor), em vez de espaços em branco e que os (eventuais) caracteres especiais (que compõem os nomes dos arquivos) não devem ser tratados como especiais e devem ser entendidos literalmente.
Por último, a opção ‘-t’, do comando mv, indica que o nome que o segue é nome de diretório e não nome de arquivo comum.
Se você quiser ver a ação acontendo, use ‘-vt’, assim:

shuf -zen200 origem/* | xargs -0 mv -vt destino

Outra alteração que você pode fazer é substituir o comando mv (mover) por cp (copiar):

shuf -zen200 origem/* | xargs -0 cp -vt destino

Para ver os arquivos copiados, no destino, use o comando ls -tlr — com estes parâmetros, o comando ls mostra os arquivos na ordem em que foram gravados.

Lista de arquivos mp3
Clique para ver detalhes.

Use o comando find para listar, embaralhar e copiar arquivos de um diretório para outro

Uma solução equivalente envolve o comando find.
Um pouco mais complexa, porém mais flexível é voltada para usuários mais avançados.
Com esta opção é possível entrar recursivamente nos diretórios em busca de arquivos e transferi-los para dentro de outro diretório ou dispositivo de armazenamento, “totalmente desorganizados”, do jeito que eu quero.
Veja como funciona:

find origem -type f -print0 | sort -Rz | cut -d $'\0' -f-200 | xargs -0 cp -nvt destino

Se você quiser entender melhor o comando find, leia alguns artigos que contém exemplos dele.

Como renomear os arquivos aletoriamente

O que resta saber, agora, é se o seu mp3 player “físico” toca os arquivos na ordem em que se encontram na mídia de armazenamento ou se os toca em ordem alfabética (ou qualquer outra).
No meu caso, os arquivos são tocados na ordem em que foram gravados.
Se este não for o seu caso e se seus arquivos seguem o padrão de ter em seus nomes a identificação do cantor/banda etc. tudo o que fizemos até aqui, provavelmente terá sido inútil.
O meu player (velhinho) não exibe no visor o nome do arquivo que está tocando.
Esta característica torna os nomes dos arquivos irrelevantes, quando conecto uma mídia de armazenamento nele.
Portanto, se eu renomear todos os meus arquivos mp3 aleatoriamente, vou obter o mesmo resultado: tocá-los aleatoriamente.
A linha de comando, que segue, altera os nomes de arquivos usando o sha1sum, para gerar códigos aleatórios.
Recomendo copiar seus arquivos para um diretório temporário antes de executar o próximo comando — uma vez que ele impossibilitará saber “quem é quem” no diretório, depois que alterar todos os nomes (veja o resultado, na imagem abaixo).
nomes de arquivos aleatórios
Entre no diretório contendo seus arquivos e execute o seguinte:

for fname in *.mp3; do mv -v "$fname" $(echo "$fname" | sha1sum | cut -f1 -d' ').mp3; done

Agora copie os arquivos pro pendrive ou cartão SD e veja se funcionou!

Referência: http://unix.stackexchange.com/questions/38335/best-method-to-collect-a-random-sample-from-a-collection-of-files

Vale a pena criptografar os dados no smartphone?

Criptografar os dados no seu smartphone pode impedir que pessoas não autorizadas tenham acesso às suas fotos, vídeos, e outros tipos de arquivos.
Nas versões mais novas do Android, é uma medida de segurança eficaz para dificultar a exposição de arquivos pessoais e/ou profissionais.
Em caso de roubo, o conteúdo na memória do aparelho e no cartão de memória não poderão ser acessados sem que se conheça a senha.
A única forma de poder fazer uso do aparelho é remover a criptografia, através de um reset de fábrica — que promove a remoção total dos dados gravados no aparelho. O cartão de memória, para poder ser usado, precisará ser reformatado.

Criptografia, do grego, kryptós + graphein, pode ser traduzido como escrita secreta.
Consiste no uso de técnicas de segurança para bloquear acesso de pessoas não autorizadas a um determinado conteúdo

Quem deve usar criptografia?

Há vários perfis de usuários que justificam o uso de criptografia.
Executivos, consultores, advogados e inúmeros outros profissionais que armazenam no smartphone arquivos de trabalho sensíveis e confidenciais, devem fazer uso da criptografia.
Há também motivações pessoais para a adoção desta medida.
Quem tem já tirou fotos íntimas ou fez um ou mais vídeos “calientes“, na maioria das vezes, não tem interesse em ver este material circulando livremente nos sites pornôs ou nas redes sociais (Facebook, Whatsapp etc.) — o que pode causar um estrago na sua imagem, nas suas relações familiares e, até mesmo, profissionais.

A criptografia atual é baseada em teorias matemáticas aliadas a softwares poderosos, com o objetivo de criar algoritmos difíceis de serem quebrados por invasores.
Teoricamente, é possível quebrar chaves criptográficas… mas é altamente desestimulante, sem recursos computacionais avançados.

Uma vez roubado, não há mais nada que você possa fazer para impedir que um estranho tenha acesso a todos os seus arquivos no smartphone ou no tablet, caso estejam desprotegidos.
Neste caso, a criptografia é uma medida de segurança preventiva, que evita o uso ou a exibição indevida dos seus dados.
Em resumo, todo mundo pode se beneficiar da criptografia de dados.

Desvantagens da criptografia

Tudo tem um preço. Quanto mais fechaduras, mais chaves.
À medida em que os níveis de segurança vão avançando, mais trabalho você terá para desativá-los.
Para ativar a criptografia em um smartphone Android, a depender da versão utilizada, será necessário adotar o bloqueio por senha — com pelo menos 6 dígitos.
Na tabela, abaixo, descrevo 3 motivos que podem tornar a experiência irritante para um usuário.

Problema Descrição
Dificuldade para digitar a senha Ao usar o Android 4.2, o bloqueio da tela por senha é mandatório, se você quiser fazer uso da criptografia.
Em telas menores do que 4″ (polegadas), pode achar incômodo ter que digitar uma senha com 6 caracteres, dos quais 2 têm que ser numéricos.
Se estiver na rua, em dia medianamente ensolarado e tiver esquecido de aumentar o brilho da tela do seu smartphone, terá dificuldades para conseguir digitar a senha e desbloquear o aparelho, para fazer uma chamada ou ver um SMS.
Lentidão do aparelho A criptografia faz uso mais intenso do processador. Todo arquivo precisa ser descriptografado, antes de poder ser lido. Se for alterado, vai precisar ser criptografado novamente. Toda foto tirada, será criptografada antes de ser gravada.
Como regra geral, contraindico o uso da criptografia em aparelhos que usem processadores com clock inferior a 1.0GHz e menos de 2 núcleos.
Você pode ficar trancado do lado de fora… Se você esquecer a senha, vai perder o acesso aos seus dados, como consequência.
Se o seu aparelho pifar, não será possível ler os dados do cartão em outro aparelho ou no PC.

Quando a criptografia é uma boa idéia

Use criptografia, sim, no caso de você manter fotos e vídeos íntimos seus ou de outras pessoas. Em caso de roubo, você terá a tranquilidade de que seus arquivos não serão vistos, nem usados contra você ou quem quer que seja.
Smartphones de trabalho podem ser visados por concorrentes, desejosos de ver seus contatos e outros arquivos de cunho profissional.
Na relação de links, abaixo, há um para um artigo que ensina o procedimento passo a passo para criptografar seus dados no Android.
Se quiser, use a área de comentários, para dar sua opinião sobre o assunto.

Impacto na performance

No vídeo, abaixo, o Chris mostra um comparativo real com o Nexus 5, rodando o Android 5.0 Lollipop — criptografado VS não criptografado.
O aparelho da direita é o que está encriptado.
Fica claro que, no uso geral do aparelho, não há impacto significativo na performance — ou seja, ele não fica mais lento.
O vídeo não foi feito em laboratório, com todas as condições e variáveis de ambiente sob controle. Portanto, precisamos dar um desconto para alguns fatores (o Chris chama a atenção para isto).
As flutuações na rede podem ter tornado alguns apps mais lentos, independente de seus dados estarem criptografados ou não — isto pode explicar o delay de 3 segundos a mais para abrir o Facebook no aparelho da direita (o que está encriptado) e que não ocorreu na abertura de outros apps.

O teste de benchmark, ao final do vídeo, revela os seguintes dados:

Teste Nexus 5 sem criptografia Nexus 5 com criptografia
Leitura Sequencial 161,15 MB/s 54,21 MB/s
Escrita Sequencial 44,67 MB/s 30,32 MB/s
Leitura Aleatória 22,18 MB/s 17,32 MB/s
Escrita Aleatória 12,57 MB/s 12,22 MB/s

A maior diferença (3x) está no primeiro teste: de leitura sequencial. Ainda assim, o cache interno do aparelho tende a eliminar isto.
O que você acha? Vale a pena usar o aparelho criptografado? 😉

Referências

Saiba como fazer — Como ativar criptografia no seu smartphone Android.
Wikipedia: Criptografia.

Dicas para fazer uma faxina no Ubuntu.

O Linux é um sistema operacional que sofre muito pouco (ou quase nada) do mal de ir “se deteriorando” com o tempo. Mas, se você está enfrentando um problema de falta de espaço no sistema e já removeu o que dava pra remover dos seus arquivos pessoais, eu tenho algumas dicas para melhorar um pouco mais a sua situação.
Antes de qualquer coisa, jamais use aplicativos de limpeza, como o Bleachbit, Computer Janitor etc.
Aplicativos deste tipo podem danificar o seu sistema irreparavelmente.
Se você quer, mesmo, limpar o seu sistema, vou descrever como fazê-lo de maneira segura.

Por que você não precisa desfragmentar o Linux

O sistema de arquivos ext4 foi projetado para não fragmentar os arquivos. Ele é extremamente eficiente nisto.
O Linux não grava arquivos em blocos contíguos — ele os grava com espaços antes e depois de cada arquivo.
Com 20% de espaço livre na partição, a fragmentação será insignificante e imperceptível — com menos do que isso, você poderá ter problemas com a fragmentação de arquivos individuais.
Esta vantagem se aplica a quem usa o Linux com os sistemas de arquivo EXT3 ou EXT4. Não se aplica a FAT, FAT32 ou NTFS.

Remova pacotes inúteis de programas já instalados

Após a instalação dos seus programas, os pacotes baixados permanecem na sua máquina. Alguns destes pacotes foram baixados para satisfazer dependências de programas que você nem usa mais. Outros estão lá para o caso de você querer reinstalar e não precisarem ser baixados novamente.
Você pode ver o espaço que ocupam com o comando du (disc usage):

du -h /var/cache/apt/archives/

No meu caso, o resultado foi este:

4,0K	/var/cache/apt/archives/partial
4,0K	/var/cache/apt/archives/apt-fast
353M	/var/cache/apt/archives/

Agora execute o comando administrativo de limpeza:

sudo apt-get clean

Eu consegui eliminar mais de 350 megabytes, aqui:

4,0K	/var/cache/apt/archives/partial
4,0K	/var/cache/apt/archives/apt-fast
112K	/var/cache/apt/archives/

Elimine thumbnails ou miniaturas de imagens

Você já deve ter notado que, ao abrir uma pasta com imagens, com o seu gerenciador de arquivos, o sistema exibe as miniaturas, tornando mais fácil localizar o que você deseja, ali.
Pois bem, estas ficam armazenadas no seu diretório pessoal e, mesmo após apagar a imagem original, elas permanecem lá, dentro de um diretório chamado .thumbnails.
Note que o nome do diretório .thumbnails começa com um ponto — isto indica que se trata de um arquivo/diretório oculto.
Se a pasta .thumbnails não estiver sendo exibida, tecle Ctrl + H, para exibir os arquivos ocultos.
Com o tempo, os thumbnails vão se acumulando e ocupando espaço no seu disco. É seguro removê-los — o sistema os recria à medida que vai precisando deles depois.
Para verificar o espaço ocupado pelas miniaturas, no terminal, use o seguinte comando:

du -h ~/.thumbnails/

Se quiser remover os arquivos no terminal:

rm -vfr ~/.thumbnails/normal/*

Eventualmente, a pasta que armazena as miniaturas pode estar em outro lugar:

rm -f ~/.cache/thumbnails/normal/*

Isto já é o suficiente para manter o seu sistema limpo. Apagar versões antigas do kernel também é um recurso para aumentar o espaço em disco:

LEIA MAIS
Veja como remover versões antigas do kernel — neste artigo, eu mostro como visualizar as várias versões do kernel e como removê-las, recuperando algumas centenas de megabytes em espaço livre.

Divirta-se!

Como ocultar arquivos no Linux

Ocultar arquivos no Linux é relativamente simples e pode ser feito com uma simples renomeação do arquivo.
Esta ação não garante segurança extra. Apenas deixa os arquivos menos óbvios.

exibir ocultar arquivos ubuntu linux
Clique para ampliar

No gerenciador de arquivos da interface gráfica (GUI), usa-se o ^H (Ctrl + H) para ligar/desligar a exibição dos arquivos ocultos.
Você pode ocultar um arquivo qualquer através da renomeação — basta acrescentar um ponto ao início de seu nome.
Na GUI, selecione um arquivo e tecle F2, para alterar o seu nome.
renomear arquivos no ubuntu linux
Clique para ampliar.

Como ocultar e listar arquivos ocultos, no terminal

Na CLI (linha de comando), use o mv para alterar nomes de arquivos:


mv nome_do_arquivo.txt .nome_do_arquivo.txt

Para listar os arquivos ocultos use o ls com a opção ‘-a’:


ls -a

list hidden files in Linux
Como listar arquivos ocultos no Linux.

Quer saber como alterar as cores dos nomes dos arquivos? Então leia sobre o dircolors. 😉