【问题标题】:Symlink directory tree to one directory将目录树符号链接到一个目录
【发布时间】:2013-07-28 02:45:20
【问题描述】:

我想要一个 bash 脚本来循环遍历目录树,并在没有树的情况下创建指向新目录的符号链接,但将文件名更改为告诉目录的新目录。

类似这样的:

产地:

目录

-- 目录A

---- 目录AA

------文件AA1

------文件AA2

----文件A1

----文件A2

-- 目录B

----文件B1

-- 目录C

----文件C1

----文件C2

----文件C3

目的地:

目录目的地

--DirectoryA - DirectoryAA - FileAA1

--DirectoryA - DirectoryAA - FileAA2

--DirectoryA - FileA1

--DirectoryA - FileA2

--DirectoryB - FileB1

--DirectoryC - FileC1

--DirectoryC - FileC2

--DirectoryC - FileC3

【问题讨论】:

  • 没有什么具体的,想不出办法,需要一些启动

标签: linux bash symlink directory-tree


【解决方案1】:

应该这样做:

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 2019-09-06
  • 2020-11-10
  • 1970-01-01
  • 2012-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多