我不认为你的文件丢失了;这应该发生:
假设以下结构(以 标记的目录/)
.
|-- a/
| |-- a1
| |-- a2
| |-- a3
| `-- a4
|-- b/
| |-- b1
| |-- b2
| |-- b3
| `-- b4
|-- c/
`-- d/
|-- d1/
| `-- foo
|-- d2/
| `-- foo
|-- d3/
| `-- foo
`-- d4/
Run Code Online (Sandbox Code Playgroud)
首先,请记住 Un*x 不会mv扩展通配符,而是扩展shell:
mv ./*/* .扩展为
mv /a/a1 ./a/a2 ./a/a3 ./a/a4 ./b/b1 ./b/b2 ./b/b3 ./b/b4 ./d/d1 ./d/d2 ./d/d3 ./d/d4 .
并且 mv 将执行您想要的操作,因为目标(即最后一个参数)是一个目录。一切(即作为参数给出的所有文件/目录,除了最后一个)都移动到当前目录 ( .) 中。mv ./*/* this_is_a_file内容被扩展为mv /a/a1 ./a/a2 ./a/a3 ./a/a4 ./b/b1 ./b/b2 ./b/b3 ./b/b4 ./d/d1 ./d/d2 ./d/d3 ./d/d4 this_is_a_file并且 mv 拒绝对mv: target „this_is_a_file“ is not a directory. 没有什么会被覆盖或移动。现在,对于您的命令:mv ./*/*扩展为mv /a/a1 ./a/a2 ./a/a3 ./a/a4 ./b/b1 ./b/b2 ./b/b3 ./b/b4 ./d/d1 ./d/d2 ./d/d3 ./d/d4. 正如您在我的示例中看到的那样,最后一个参数恰好是一个目录,这对 mv 来说很好,并且所有内容都被移动到其中 - 最后您会得到那棵树:
.
|-- a/
|-- b/
|-- c/
`-- d/
`-- d4/
|-- a1
|-- a2
|-- a3
|-- a4
|-- b1
|-- b2
|-- b3
|-- b4
|-- d1/
| `-- foo
|-- d2/
| `-- foo
`-- d3/
`-- foo
Run Code Online (Sandbox Code Playgroud)
我想你有一个类似的场景,这就是为什么我相信你的文件没有消失,而是简单地移动到层次结构更深处的某个地方。
| 归档时间: |
|
| 查看次数: |
182 次 |
| 最近记录: |