Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 查找不包含';t包含“*”。sql";文件夹_Linux_Bash_Find - Fatal编程技术网

Linux 查找不包含';t包含“*”。sql";文件夹

Linux 查找不包含';t包含“*”。sql";文件夹,linux,bash,find,Linux,Bash,Find,我有几个目录如下。我想列出没有SQL文件的目录。例如下面的示例中的“dev.mysite.com”。我正在使用ubuntu 14.04 LTS orange.com/ orange.com.sql 10.10.10.1/public_html/... apple.edu.us/ apple.edu.sql 10.10.10.2/public_html/... dev.mysite.com/ 10.10.10.3/public_html/ exampl

我有几个目录如下。我想列出没有SQL文件的目录。例如下面的示例中的“dev.mysite.com”。我正在使用ubuntu 14.04 LTS

orange.com/
    orange.com.sql
    10.10.10.1/public_html/...

apple.edu.us/
    apple.edu.sql
    10.10.10.2/public_html/...

dev.mysite.com/
    10.10.10.3/public_html/

example.com/
    mysql_dbdump20150911.sql
    10.10.11.11/public_html/...
我试图通过使用带有“cut”和“xargs”的“find”来实现这一点,并将这些目录移动到“dirwithsql”目录中,然后手动将其余的目录作为没有sql文件的目录

find . -maxdepth 2 -iname "*.sql" | cut -d'/' -f 2 | xargs -n 1 -I {} mv {} /backup/dirwithsql/{}
我试过了

find -maxdepth 2 ! -iname "*.sql" -exec dirname {} \;
但上面的命令显示了所有目录

有没有更好的方法?
谢谢你

我最近也遇到了类似的问题,这对我很有效

for f in $(find . -type d -maxdepth 2); do if [[ $(ls -1 $f | grep '.sql$'|wc -l) == 0 ]] ; then echo $f; fi; done
即使是外来的目录名(空格、换行符……)也可以使用(谢谢你,伙计:)它可以使用,但我需要掌握这些表达式
find . -type d -print0 | while read -d $'\0' n; do [ -f "$n"/*.sql ] || echo $n; done