我目前正在按照给出的说明删除我的主目录加密ecryptfs-setup-private --undo
。
我已退出图形会话并登录 tty,以便将所有文件从 ~ 移动到临时位置(与 /home 位于同一分区),因此从 /home 发出了以下命令:find ~ -maxdepth 1 -mindepth 1 -not -name .Private -and -not -name .ecryptfs -exec mv '{}' -t zoopp.unencrypted \;
。
该命令移动了大约 30% 的文件,然后由于空间不足而停止。当我检查“df -h”的输出时,我注意到主分区已满。
在开始移动操作之前,我有大约 70GB 的可用空间,而且据我所知,ecryptfs 不会压缩文件,所以我认为一切都会好起来。
在这种情况下我能做什么?
答案1
显然,mv 留下了一些深埋的文件(它们在复制后并没有被删除)。
我使用这个脚本找到并删除了它们:
#!/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
附注:如果只检查文件大小的差异,而不是比较每个可能重复的 MD5 哈希值,速度会更快。