Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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
Regex 如何在'find'命令的extra-exec选项中表示所有文件/目录?_Regex_Command Line_Find - Fatal编程技术网

Regex 如何在'find'命令的extra-exec选项中表示所有文件/目录?

Regex 如何在'find'命令的extra-exec选项中表示所有文件/目录?,regex,command-line,find,Regex,Command Line,Find,我的任务是将多个具有特殊名称的目录中的所有文件复制到目标目录 所以我构建这个目录来测试我的命令。测试目录树如下所示: . ├── dir1 │   └── file1 └── test 我打算将所有文件从dir1迁移到test的命令是: find . -type d -name "*dir*" -exec mv {}/* test \; 然后我得到: mv: rename ./dir1/* to test/*: No such file or directory 我想这是因为在extra-

我的任务是将多个具有特殊名称的目录中的所有文件复制到目标目录

所以我构建这个目录来测试我的命令。测试目录树如下所示:

.
├── dir1
│   └── file1
└── test
我打算将所有文件从dir1迁移到test的命令是:

find . -type d -name "*dir*" -exec mv {}/* test \;
然后我得到:

mv: rename ./dir1/* to test/*: No such file or directory
我想这是因为在extra-exec表达式中,命令没有将*作为通配符处理

所以我做了:

find . -type d -name "*dir*" -exec mv {}/file1 test \;
已成功将文件1移动到测试

但关键是,我现在需要为所有文件创建表达式,以便完成文件传输工作


我应该如何在
find-exec
命令组中表达这一点?

如果您只想从任何
目录*
中移动文件(*表示
目录
,后跟任何其他字符作为通配符),您可能希望使用
-type f
,意思是
文件

find dir* -type f -name "*" -exec mv {} test \;
-type d
指示
查找
您正在指定目录