回滚大型文件重命名/移动操作的方法

回滚大型文件重命名/移动操作的方法

这似乎是一个编程问题,但我的经验是管理员是适合做这个的人吗?

答:我有大约 10,000 个文件,刚刚列举的都在一个目录中 - fl000001.pdf....

B. 我还有一个以逗号分隔的文件,其中包含这些文件的元数据(即文件名、ImageID、作者、日期、客户端)。

这最终会成为一个很大程度上静态的数据集,我们将使用文件系统通过将字段连接在一起并重命名/移动到该位置来组织它们(因此 f:\data\2012-12-23\author\clientname.pdf)。

这很简单,我已经做了很多,我可能会使用 Python,但我想进入下一步,我想我已经看到了这一点,所以我正在寻找一些推荐和进一步的建议。

是否有某种方法(除了回滚虚拟机)来虚拟化文件系统或文件系统的一部分,以便我所做的任何更改在我提交之前都不会真正生效,或者在虚拟化文件系统上测试后在文件系统的非虚拟化部分执行相同的操作?

我发现了 sandboxie,它似乎是合适的,但是还有其他适合这个的应用程序/方法/建议吗? http://www.sandboxie.com/ 有人用过 sandboxie 做这种事情吗?还有其他想法,这样做的回报是不是太低了?;)

背景:

很多时候,客户并不确切知道他们想要什么,我想这将是设置一些程序参数的简单方法,运行重命名,速度很快,但很难回滚(除非我以编程方式完成,但由于它可能会失败,这似乎更容易?),他们可以看一看,就在会议中他们看一看,我们可以调整,将文件系统回滚,然后重新运行重命名。

我可以在 Windows 7、Windows 2008r2 或 Linux 中执行此操作 - 没有 Mac,我会清理/枚举名称等等,以便希望它的文件名非常简化,以容忍文件系统的限制/怪癖/规则。

答案1

接近 mfinni 的答案,但使用硬链接相反。简而言之,您在磁盘上创建了指向同一文件的另一个指针。您可以删除其中一个,但原始文件仍保留在磁盘上。

这样,您可以保留原始文件和文件夹结构,而且脚本将几乎立即运行,因为它不必创建实际文件的副本。

答案2

我建议使用本机工具轻松回滚,而无需虚拟化文件系统:

  1. 编写一个脚本来执行此操作并编写一个脚本来逆转它。
  2. 编写一个脚本,使用新文件名创建符号链接,而不是重命名文件。
  3. 编写一个脚本来执行此操作作为复制并重命名,而不是简单的重命名 - 这样,您就可以在原始位置获得原始文件。

相关内容