Minha partição / home ficou cheia após mover os arquivos da pasta do usuário criptografada para a pasta do usuário não criptografada. O que eu posso fazer?

0

Atualmente, estou trabalhando para remover a criptografia do meu diretório pessoal seguindo as instruções dadas por ecryptfs-setup-private --undo .

Eu saí da sessão gráfica e me conectei em um tty para mover todos os arquivos de ~ para um local temporário (na mesma partição que / home) e, portanto, de / home Eu emiti o seguinte comando: find ~ -maxdepth 1 -mindepth 1 -not -name .Private -and -not -name .ecryptfs -exec mv '{}' -t zoopp.unencrypted \; .

O comando moveu cerca de 30% dos arquivos e parou devido a espaço insuficiente. Quando eu verifiquei a saída de 'df -h', notei que a partição inicial está cheia.

Antes de iniciar a operação de movimentação, eu tinha cerca de 70 GB de espaço livre e, desde que eu saiba, o ecryptfs não compacta os arquivos, achei que tudo ficaria bem.

O que posso fazer nesta situação?

    
por Mihai Bişog 30.07.2013 / 17:10

1 resposta

0

Aparentemente alguns arquivos profundamente enterrados foram deixados para trás por mv (eles não foram deletados após serem copiados).

Encontrei e excluí-os com este script:

#!/bin/bash

TARGET=/home/zoopp.unencrypted/
SOURCE=/home/zoopp/


find $TARGET -type f | while read file; do
    RELATIVE_PATH=$(echo $file | sed -e 's/^\/home\/zoopp.unencrypted\///')
    if [ -e "$SOURCE$RELATIVE_PATH" ]; then
        TARGET_FILE="$TARGET$RELATIVE_PATH"
        SOURCE_FILE="$SOURCE$RELATIVE_PATH" 

        echo "Found $TARGET_FILE -> $SOURCE_FILE"

        MD5_TARGET=$(md5sum "$TARGET_FILE" | cut -d' ' -f 1)
        MD5_SOURCE=$(md5sum "$SOURCE_FILE" | cut -d' ' -f 1)

        echo -e "\tMD5: $MD5_TARGET -> $TARGET_FILE"
        echo -e "\tMD5: $MD5_SOURCE -> $SOURCE_FILE"

        if [ "$MD5_TARGET" != "$MD5_SOURCE" ]; then
            echo -e "\tMissmatch."
            echo -e "\tDeleting $TARGET_FILE."
            rm -f "$TARGET_FILE"

            echo -e "\tMoving $SOURCE_FILE -> $TARGET_FILE"
            mv "$SOURCE_FILE" "$TARGET_FILE"
        else
            echo -e "\tMatch. Deleting $SOURCE_FILE"
            rm -f "$SOURCE_FILE"
        fi

        echo
    fi
done

Como uma observação: seria mais rápido verificar apenas uma diferença no tamanho do arquivo, em vez de comparar o hash MD5 de cada duplicata possível.

    
por Mihai Bişog 31.07.2013 / 11:58