web-dev-qa-db-ja.com

あるディレクトリ内の各ファイルを別のディレクトリにシンボリックリンクするにはどうすればよいですか?

いくつかのファイルが含まれるディレクトリ/fooがある場合、/fooの各エントリを/bar/にシンボリックリンクする方法を教えてください。

たとえば、/fooにファイルabcがある場合、3つのシンボリックリンクを作成します。

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

(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$
18
hlovdal

これを試してみてください:

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

このようなもの?

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