gpt4 book ai didi

linux - 将目录树符号链接(symbolic link)到一个目录

转载 作者:太空宇宙 更新时间:2023-11-04 04:13:37 26 4
gpt4 key购买 nike

我想要一个 bash 脚本来循环遍历目录树,并建立到没有树的新目录的符号链接(symbolic link),但将文件名更改为告诉目录的新名称。

类似这样的事情:

来源:

目录

--目录A

----目录AA

------文件AA1

------文件AA2

----文件A1

----文件A2

--目录B

----文件B1

--目录C

----文件C1

----文件C2

----文件C3

目的地:

目录目标

--目录A - 目录AA - 文件AA1

--目录A - 目录AA - 文件AA2

--目录A - 文件A1

--目录A - 文件A2

--目录B - 文件B1

--目录C - 文件C1

--目录C - 文件C2

--目录C - 文件C3

最佳答案

这应该可以做到:

cd Directory; find * -type f -print0 | xargs -l -0 bash -c 'filename=`echo "$0" | tr '/' -`; ln -s $(pwd)/$0 ../DirectoryDest/$filename'

这将产生以下文件:

user@machine:~$ ls -l DirectoryDest/
total 0
lrwxrwxrwx 1 user user 51 Jul 27 23:02 DirectoryA-DirectoryAA-FileAA1 -> /home/user/Directory/DirectoryA/DirectoryAA/FileAA1
lrwxrwxrwx 1 user user 51 Jul 27 23:02 DirectoryA-DirectoryAA-FileAA2 -> /home/user/Directory/DirectoryA/DirectoryAA/FileAA2
lrwxrwxrwx 1 user user 38 Jul 27 23:02 DirectoryA-FileA1 -> /home/user/Directory/DirectoryA/FileA1
lrwxrwxrwx 1 user user 38 Jul 27 23:02 DirectoryA-FileA2 -> /home/user/Directory/DirectoryA/FileA2
lrwxrwxrwx 1 user user 38 Jul 27 23:02 DirectoryB-FileB1 -> /home/user/Directory/DirectoryB/FileB1
lrwxrwxrwx 1 user user 38 Jul 27 23:02 DirectoryC-FileC1 -> /home/user/Directory/DirectoryC/FileC1
lrwxrwxrwx 1 user user 38 Jul 27 23:02 DirectoryC-FileC2 -> /home/user/Directory/DirectoryC/FileC2
lrwxrwxrwx 1 user user 38 Jul 27 23:02 DirectoryC-FileC3 -> /home/user/Directory/DirectoryC/FileC3

关于linux - 将目录树符号链接(symbolic link)到一个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17904924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com