我有一个 linux 问题,我需要一些帮助...
我有一个为我创建目录的应用程序。我想编写一个查看这些目录的脚本,检查目录是否以某个字符串开头,如果是,请不要理会它,如果不是,则移动它...
所以,从逻辑的角度来看:
如果 directoryname 以“ABC”开头,那么什么都不做
将
文件夹移动到 sharedrive
这个脚本将进入 cron.hourly 文件夹,因此它会自动为我运行。
任何帮助是极大的赞赏!!!
find . -mindepth 1 -maxdepth 1 -type d ! -name 'ABC*' -exec mv -i {} ./dest \;
如果您可以为不想移动的目录确定一个简单的模式,您甚至可以使用 bash 的 extglob 设置:
shopt -s extglob
mv !(ABC)*/ ./dest/
对于这样一个简单的模式,只需使用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 \;
因此,您可以改为将目录列表输出到文件,然后移动它们。