![撤消将不带目录的子级文件移动到单个平面目录](https://linux22.com/image/1339110/%E6%92%A4%E6%B6%88%E5%B0%86%E4%B8%8D%E5%B8%A6%E7%9B%AE%E5%BD%95%E7%9A%84%E5%AD%90%E7%BA%A7%E6%96%87%E4%BB%B6%E7%A7%BB%E5%8A%A8%E5%88%B0%E5%8D%95%E4%B8%AA%E5%B9%B3%E9%9D%A2%E7%9B%AE%E5%BD%95.png)
常规设置
-root-dir<br>
---dir-tar<br>
---file<br>
---dir<br>
------dir<br>
------file<br>
---dir<br>
------dir<br>
------fil<br>
我运行的命令:
find ./dir -type f -iname "*" -exec mv {} --target-directory=dir-tar /;
我当时在root-dir
(注意 dir-tar 在 root-dir 里面)
问题
没有移动任何子目录。现在列出所有文件,dir-tar
但没有列出其子目录(基本上是杂乱无章的!)
所以任何帮助都会很感激。他们有关于什么东西去了哪里的信息吗?我试着ls -lrt
查看日期或时间,但没有真正的模式可以将它们拼凑起来。
任何帮助都值得感激。谢谢。
答案1
好吧,find 按照你的要求做了。它找到了每个文件并移动了每个文件。除非你有某种参考资料(备份、存档),否则我相信几乎不可能恢复原始结构,因为据我所知,文件系统没有移动文件的反向选项。
将来,在命令前添加“echo”可能是明智之举,这样在执行命令之前就能看到会发生什么。在这个特定情况下,你想要完成的事情可以通过mv dir/* tar-dir
以下方式实现:
find /path -type d -maxlevel 1 -exec -->echo<-- mv {} /dest/ \;