2

わかりましたので、これについて頭を悩ませようとしてきましたが、苦労しています。

前提は次のとおりです。多くのサブディレクトリを含むディレクトリがあり (一部にはさらに多くのサブディレクトリが含まれています)、別の共有に別の別のディレクトリがあり、レイアウトでソース ディレクトリを模倣しています。私が今必要としているのは、ソース ディレクトリをループし、サブディレクトリ内のファイルを検出し、それらへのシンボリック リンクを宛先ディレクトリに作成する方法です。

これが明確でない場合は、この投稿でかなり詳しく説明されていますが、その質問はファイル自体ではなくディレクトリのシンボリックリンクを目的としていることを除いて.

編集: Kerrek が何をしようとしているのか気づいたのですが、このリンクを含めるのを忘れていました:ツリー内のサブディレクトリへのシンボリック リンクを自動的に作成する Bash スクリプト

わかりました、これまでのところ、ケレックの答えに基づいてこれを持っています:

#!/bin/bash

SOURCE="/home/simon/testdir/src"
DEST="/home/simon/testdir/dest"

cd $DEST

find $SOURCE -type f -exec ln -s -- "{}" "{}" \;

exit

これにより、次のようになります。

ln: creating symbolic link `/home/simon/testdir/src/new.dir/a': File exists
ln: creating symbolic link `/home/simon/testdir/src/new.dir/b': File exists
ln: creating symbolic link `/home/simon/testdir/src/new.dir/c': File exists

ただし、実際には宛先ディレクトリにシンボリックリンクを作成しません。

4

1 に答える 1

5

を使用してはfindどうですか?

cd -- "$SOURCEDIR"

find -type d -exec mkdir --parents -- "$DESTDIR"/{} \;

find -type f -exec ln --symbolic -- "$SOURCEDIR"/{} "$DESTDIR"/{} \;
于 2012-03-20T21:55:35.287 に答える