如何在 `find` 命令的额外 -exec 选项中表达所有 files/directories?
How to express all files/directories at the extra -exec option of `find` command?
我的任务是将多个目录中具有特殊名称的所有文件复制到目标目录。
所以我建立这个目录来测试我的命令。测试目录树如下所示:
.
├── dir1
│ └── file1
└── test
我打算将 dir1 中的所有文件 mv 到测试的命令是:
find . -type d -name "*dir*" -exec mv {}/* test \;
然后我得到:
mv: rename ./dir1/* to test/*: No such file or directory
我猜这是因为在那个额外的 -exec 表达式中,命令没有将 * 视为通配符。
所以我做了:
find . -type d -name "*dir*" -exec mv {}/file1 test \;
成功移动 file1 进行测试。
但关键是,我现在需要所有文件的表达式,这样我才能完成这个文件传输工作。
在find -exec
命令组中应该怎么表达?
如果您只想从任何 dir*
移动文件(* 表示 dir
后跟任何其他字符作为通配符),您可能希望使用 -type f
, 意思是 files
:
find dir* -type f -name "*" -exec mv {} test \;
-type d
向 find
表明您正在指定一个目录。
我的任务是将多个目录中具有特殊名称的所有文件复制到目标目录。
所以我建立这个目录来测试我的命令。测试目录树如下所示:
.
├── dir1
│ └── file1
└── test
我打算将 dir1 中的所有文件 mv 到测试的命令是:
find . -type d -name "*dir*" -exec mv {}/* test \;
然后我得到:
mv: rename ./dir1/* to test/*: No such file or directory
我猜这是因为在那个额外的 -exec 表达式中,命令没有将 * 视为通配符。
所以我做了:
find . -type d -name "*dir*" -exec mv {}/file1 test \;
成功移动 file1 进行测试。
但关键是,我现在需要所有文件的表达式,这样我才能完成这个文件传输工作。
在find -exec
命令组中应该怎么表达?
如果您只想从任何 dir*
移动文件(* 表示 dir
后跟任何其他字符作为通配符),您可能希望使用 -type f
, 意思是 files
:
find dir* -type f -name "*" -exec mv {} test \;
-type d
向 find
表明您正在指定一个目录。