如何在bash中识别一个文件夹,然后决定是否移动它



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

我有一个为我创建目录的应用程序。我想写一个脚本来检查这些目录,检查目录是否以特定的字符串开头,如果是,别管它,如果不是,然后移动它…

所以,从逻辑角度来看:

如果directoryname以"ABC"开头,则不做任何操作
其他
移动文件夹到共享驱动器

该脚本将放在cron中。每小时文件夹,所以它会自动为我运行。

任何帮助都非常感谢!!

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 ;

所以你可以直接输出dir列表到一个文件,然后然后移动它们

相关内容

最新更新