gpt4 book ai didi

mysql - 查找并移动不在文本列表中的文件 Linux

转载 作者:行者123 更新时间:2023-11-29 23:05:34 24 4
gpt4 key购买 nike

我正在清理旧数据库的存储,需要删除当前未使用的所有文件。

我有一个事件文件和路径的列表,并且希望将所有不活动的文件移动到一个位置,我可以在其中查看,然后在不需要时将其删除。

我在 RHEL5 上运行 mySQL 5.0

如何使用 xargs 或 find 来查找不在 activefiles.txt 上的路径/文件

非常感谢所有帮助。谢谢。

更新如下:

让我试着说得更清楚一些。我有一个 mysql 数据库,其中包含其中一个表中的路径和文件名。

mysql> select FilePath from metadata;
+-------------------------------------------------------+
| FilePath |
+-------------------------------------------------------+
| ./sample/XYZ/filename1 |
| ./sample/XYZ/filename2 |
| ./sample/XYZ/filename3 |
+-------------------------------------------------------+
3 rows in set (0.00 sec)

我需要做的是将此列放入文本文档中,然后删除目录 XYZ 中不在此列表中的所有子目录和文件。

例如:

$mysql -u root -e ‘select FilePath from database.metadata;’  > deletelist.txt
$xargs rm > deletelist.txt

这将删除从 mysql 查询返回的所有文件。

我想要做的是删除同一子目录中不在deletelist.txt中的所有文件

希望这更清楚一点

最佳答案

我的建议是:创建一个临时文件夹来保存您想要的文件并将它们移动到那里。然后将文件夹中剩余的文件移至其他位置,将原始文件移回来,并删除不需要的文件。这样您就不必枚举不需要的文件(您可以让 shell 来完成它)。

请注意,在大多数文件系统中,移动文件的成本很低 - 它不需要复制位,只需更新目录。

关于mysql - 查找并移动不在文本列表中的文件 Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28307983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com