如何将一个目录中的每个文件符号链接到另一个目录?

如何将一个目录中的每个文件符号链接到另一个目录?

如果我有一个/foo包含几个文件的目录,我该如何将其中的每个条目符号链接/foo/bar/

例如,如果/foo有文件abc,我想要创建三个符号链接:

  • /bar/a -> /foo/a
  • /bar/b -> /foo/b
  • /bar/c -> /foo/c

答案1

您可以使用 (GNU)cp和以下--symbolic-link选项:

prompt$ mkdir foo
prompt$ cd foo
prompt$ touch a b c
prompt$ mkdir ../bar
prompt$ cd ../bar
prompt$ cp --symbolic-link ../foo/* .
prompt$ ls -l
total 0
lrwxrwxrwx. 1 hlovdal hlovdal 8 Jun 12 16:24 a -> ../foo/a
lrwxrwxrwx. 1 hlovdal hlovdal 8 Jun 12 16:24 b -> ../foo/b
lrwxrwxrwx. 1 hlovdal hlovdal 8 Jun 12 16:24 c -> ../foo/c
prompt$

答案2

尝试一下:

ln -s /foo/* /bar

问题中指定的源目录是/foo。请注意,必须完全指定(即从根目录开始),因此其他示例如下所示:

ln -s /some/dir/with/baz/* destdir
ln -s /dir/to/link/from/* /dir/to/link/to
ln -s $PWD/stuff/* more/stuff

答案3

像这样吗?

cd /foo
for f in *; do ln -s $PWD/$f /bar; done

相关内容