É possível mover arquivos por ordem de tamanho?
Gostar:
mv /path/to/x /path/to/y
Onde x e y são diretórios. No entanto, arquivos menores são movidos primeiro. Ou arquivos maiores primeiro.
Além disso, existe uma razão para não fazer isso?
linux
command-line
Annan
fonte
fonte
Respostas:
Você poderia fazer assim (não testado):
Você pode reverter a classificação adicionando o parâmetro --reverse a ls. Se os nomes de arquivos contiverem espaços, pode ser necessário citar $ file:
Se os nomes de arquivos contiverem aspas duplas, você está com um problema real.
Também é possível que o seguinte funcione, mas depende da implementação do mv e também pode não funcionar para muitos arquivos (e ainda tem problemas com espaços e / ou aspas nos nomes de arquivos):
Você pergunta: "existe uma razão para não fazer isso?" A questão deve ser revertida. Existe uma razão para fazer isso? Se você tiver um motivo, vá em frente e faça-o.
fonte
Se você estiver movendo os arquivos em um único sistema de arquivos , os dados nos arquivos não serão movidos - apenas os nomes dos arquivos serão movidos entre os diretórios. Assim, você pode mover um arquivo de 10 gigabytes instantaneamente (dentro de um único sistema de arquivos). Portanto, encontrar o tamanho de todos os arquivos para que os menores possam ser movidos primeiro seria uma perda de tempo (neste caso).
fonte
Um motivo para não fazer isso é que seria necessário criar um índice de todos os arquivos antes de mover. Em seguida, obtenha o tamanho de todos esses arquivos e os ordene. Antes mesmo de começar a copiar.
E não há garantia de que o estado que você calculou antes do processo de cópia seja exatamente o mesmo durante o processo de cópia, tornando-o inútil.
fonte