有没有办法复制整个目录,但只有文件夹?我的目录中有一个损坏的文件,它导致我的硬盘出现故障。
因此,与其将损坏的文件复制到另一个硬盘,我只想复制文件夹,因为我有搜索数百个文件夹的脚本,我不想手动创建所有文件夹。
我确实搜索了 cp 手册,但什么也没看到(我可能错过了)
假设我的故障硬盘上有这个结构:
dir1
files
dir2
files
files
dir4
dir3
files
Run Code Online (Sandbox Code Playgroud)
我想要的只是目录结构,而不是任何文件。
所以我最终会在新的硬盘上:
dir1
dir2
dir4
dir3
Run Code Online (Sandbox Code Playgroud)
希望有人知道一些技巧!
Oli*_*Oli 19
如果要镜像目录骨架并且不复制任何文件:
find -type d -links 2 -exec mkdir -p "/path/to/backup/{}" \;
Run Code Online (Sandbox Code Playgroud)
这里发生了什么:
-links 2用来查找最深的目录。mkdir -p 将在此过程中创建任何丢失的目录。我已经这样做了,而不是find -type d -exec mkdir -p "/path/to/backup/{}" \;因为它会切断整个对接mkdir电话。我们可以通过一个小测试快速证明这一点。这是测试树,然后是我运行的比较两个命令的内容:
$ tree
.
??? dir1
? ??? dir2
? ? ??? dir3
? ??? dir7
? ??? dir8
??? dir9
??? dir0
$ pr -m -t <(find -type d) <(find -type d -links 2)
. ./dir1/dir8
./dir1 ./dir1/dir2/dir3
./dir1/dir8 ./dir1/dir7
./dir1/dir2 ./dir9/dir0
./dir1/dir2/dir3
./dir1/dir7
./dir9
./dir9/dir0
Run Code Online (Sandbox Code Playgroud)
这只会在具有数千个目录的实际解决方案中变得更好。