如果被删除文件还存在活动中的进程:
1. 查询出被删除文件对应的活动进程ID
lsof | grep deleted
2. 进入对应文件cd /proc/进程ID/fd,执行以下脚本:
for file in $(ls -l | awk '{print $9}'); do
symlink_dir=$(ls -l $file | awk '{print $11}')
If[ ! -d "$(dirname symlink_dir)" ]; then
Mkdir -p "$(dirname symlink_dir)"
fi
if [ ! -f "$symlink_dir" ]; then
cat "$file" > "$symlink_dir"
echo "Copied $file to $symlink_dir"
else
echo "$file already exists in $symlink_dir. Skipping..."
fi
done
上面的脚本判断被删除文件的原目录,不存在时自动创建并将文件恢复到原目录中。
ps:本篇文章仅适用于文件还存在活动进程时的恢复。