3

我有一个 linux 问题,我需要一些帮助...

我有一个为我创建目录的应用程序。我想编写一个查看这些目录的脚本,检查目录是否以某个字符串开头,如果是,请不要理会它,如果不是,则移动它...

所以,从逻辑的角度来看:

如果 directoryname 以“ABC”开头,那么什么都不做

文件夹移动到 sharedrive

这个脚本将进入 cron.hourly 文件夹,因此它会自动为我运行。

任何帮助是极大的赞赏!!!

4

2 回答 2

2
find . -mindepth 1 -maxdepth 1 -type d ! -name 'ABC*' -exec mv -i {} ./dest \;

如果您可以为不想移动的目录确定一个简单的模式,您甚至可以使用 bash 的 extglob 设置:

shopt -s extglob
mv !(ABC)*/ ./dest/
于 2013-01-09T13:58:56.420 回答
0

对于这样一个简单的模式,只需使用find,

find * -type d ! -name "ABC*" | while read f; do mv $f /tmp/test2; done

您也可以使用类似的东西,但由于 find 的递归方式可能会出现问题。

find * -type d ! -name "ABC*" -exec mv {} /tmp/test2 \;

因此,您可以改为将目录列表输出到文件,然后移动它们。

于 2013-01-09T13:44:24.873 回答