我有一个linux问题,我想帮助...
我有一个为我创建目录的应用程序。我想编写一个查看这些目录的脚本,检查目录是否以某个字符串开头,如果是,则不管它,如果没有则移动它...
所以,从逻辑立场来看:
如果directoryname以“ABC”开头,则不执行任何操作
否则
将文件夹移动到sharedrive
这个脚本将放在cron.hourly文件夹中,以便它自动运行。
非常感谢任何帮助!!!
答案 0 :(得分:2)
find . -mindepth 1 -maxdepth 1 -type d ! -name 'ABC*' -exec mv -i {} ./dest \;
如果你可以为你不想移动的目录识别一个简单的模式,你甚至可以使用bash的extglob设置:
shopt -s extglob
mv !(ABC)*/ ./dest/
答案 1 :(得分:0)
对于这样一个简单的模式,只需使用find
,
find * -type d ! -name "ABC*" | while read f; do mv $f /tmp/test2; done
您也可以使用类似的东西,但由于递归的发现方式可能会出现问题。
find * -type d ! -name "ABC*" -exec mv {} /tmp/test2 \;
所以你可以改为将dirs列表输出到文件中,然后移动它们。