LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 999|回复: 4

如何将一个目录下的文件全部链接到另一个目录?

[复制链接]
发表于 2008-4-8 14:44:23 | 显示全部楼层 |阅读模式
不用重复命令ln -s xxx
怎么才能用简单的命令组合?
脚本暂时还看不太懂。
发表于 2008-4-8 15:51:08 | 显示全部楼层
何必呢?把目录名给软链接了,就可以访问该目录下所有文件了呀。

如果你非要这么做,写个小脚本也能搞定。
回复 支持 反对

使用道具 举报

发表于 2008-4-8 16:39:36 | 显示全部楼层
ln -s 目录1/* 目录2/

注意,目录2不能是目录1的子目录,否则会出错。
回复 支持 反对

使用道具 举报

发表于 2008-4-8 17:04:59 | 显示全部楼层
to 二楼: 这种用途是很有用的, 比如我们有一套代码既要在 PC 上调试, 又要在 mips 开发板上调试, 那么我们就会非常希望能够在两个不同的目录中共享同一套代码, 否则在修改代码过程中很容易出现只修改一套, 而另一套忘记修改的情况.

to 三楼: 简单的 ln -s dir1/* dir2/ 是不够的, 它未考虑子目录的情况

to 楼主: 这种情况下用 find 是比较合适的

  1. #!/bin/sh

  2. # 我们假设已经存在 /tmp/pc 目录, 并要创建它的 '分身' /tmp/mips

  3. SRC=/tmp/pc
  4. DST=/tmp/mips

  5. cd $SRC

  6. # 创建 /tmp/mips/ 及子目录
  7. find . -type d -exec mkdir -p $DST/{} \;

  8. # 创建 .c .h 及 Makefile 的链接
  9. find . -name '*.[ch]' -o name 'Makefile' -exec ln -s $SRC/{} $DST/{} \;
复制代码

这个脚本是针对程序来制作链接的, 要是想对所有 '文件' 制作链接, 改一改就行了, 请自行思考
回复 支持 反对

使用道具 举报

发表于 2008-4-8 17:35:35 | 显示全部楼层
Post by remote fish;1836110
to 二楼: 这种用途是很有用的, 比如我们有一套代码既要在 PC 上调试, 又要在 mips 开发板上调试, 那么我们就会非常希望能够在两个不同的目录中共享同一套代码, 否则在修改代码过程中很容易出现只修改一套, 而另一套忘记修改的情况.

to 三楼: 简单的 ln -s dir1/* dir2/ 是不够的, 它未考虑子目录的情况

to 楼主: 这种情况下用 find 是比较合适的

  1. #!/bin/sh

  2. # 我们假设已经存在 /tmp/pc 目录, 并要创建它的 '分身' /tmp/mips

  3. SRC=/tmp/pc
  4. DST=/tmp/mips

  5. cd $SRC

  6. # 创建 /tmp/mips/ 及子目录
  7. find . -type d -exec mkdir -p $DST/{} \;

  8. # 创建 .c .h 及 Makefile 的链接
  9. find . -name '*.[ch]' -o name 'Makefile' -exec ln -s $SRC/{} $DST/{} \;
复制代码

这个脚本是针对程序来制作链接的, 要是想对所有 '文件' 制作链接, 改一改就行了, 请自行思考


高手,厉害!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表