ディレクトリツリー全体とディレクトリ内のすべてのファイルをシンボリックリンクする

ディレクトリツリー全体とディレクトリ内のすべてのファイルをシンボリックリンクする

今私はこれを使う

ln -s /dir/* /dir2/

dirこれにより、すべてがシンボリックリンクされますが、フォルダもシンボリックリンクされているので(予想どおり)、新しいディレクトリを作成する必要があります。

だからこれが私が達成したいものです。すべてのファイルをシンボリックリンクし、フォルダがある場合は、同じ名前のディレクトリを作成し、そのフォルダ内外のファイルをシンボリックリンクします。

フラグcp付きのGNUと同様に。-albrew install coreutils

gcp -al /dir1/ dir2/ 

これはシンボリックリンクの代わりにハードリンクであることを除いて、私が望むことを行います。

ベストアンサー1

ファイル処理とディレクトリ処理を分離する必要があると思います。まず目次を作成してください。 GNUの世界では:

cd /dir2
find /dir -mindepth 1 -maxdepth 1 -type d -exec mkdir {} \;

その後、シンボリックリンク:

find /dir -mindepth 1 -maxdepth 1 -type f -exec ln -s -t /dir2 {} +

おすすめ記事