私はその名前で*foo*
を含むすべてのファイルのfolder2
にソフトリンク(ln -s
)を作成したい、との一部またはfolder1
のすべてのサブディレクトリで見つけることができます。LINUX:どのようにすべてのサブディレクトリ内の特定のファイルをソフトリンクする
は私がfor
、find
、およびfind -exec ln
、およびそれらの組み合わせでそれを試してみたが、あなたがにしている場合は、私が得るすべては*foo*
という名前のリンク切れやfolder1
私はその名前で*foo*
を含むすべてのファイルのfolder2
にソフトリンク(ln -s
)を作成したい、との一部またはfolder1
のすべてのサブディレクトリで見つけることができます。LINUX:どのようにすべてのサブディレクトリ内の特定のファイルをソフトリンクする
は私がfor
、find
、およびfind -exec ln
、およびそれらの組み合わせでそれを試してみたが、あなたがにしている場合は、私が得るすべては*foo*
という名前のリンク切れやfolder1
、これを試してみてください。
shopt -s globstar
cd folder2
ln -s ../folder1/**/*foo* .
cd
は(これもを見つける利用下記の回答にも適用される)相対リンクのために必要とされています。絶対的なリンクが必要な場合は、
shopt -s globstar
ln -s /where/is/it/folder1/**/*foo* folder2/
それは働いてくれました、ありがとう! – Krotanix
内部のすべてのものへのリンクですターゲットフォルダにシンボリックリンクを作成する場合は、ln -s <target file>
を使用してください。 symリンク名は、ターゲット・ファイルと同じになります。
複数のファイルに対してこれを行う必要がある場合は、for
ループを使用してください。
例:
$ mkdir folder1 folder2
$ cd folder1
$ touch foo foobar foofoobar foobarfoo bar barfoo barbar
$ ls
bar barbar barfoo foo foobar foobarfoo foofoobar
$ cd ../folder2
$ for i in ../folder1/*foo*; do ln -s $i; done
$ ls -l
total 0
lrwxrwxrwx 1 abc abc 17 oct. 26 11:57 barfoo -> ../folder1/barfoo
lrwxrwxrwx 1 abc abc 14 oct. 26 11:57 foo -> ../folder1/foo
lrwxrwxrwx 1 abc abc 17 oct. 26 11:57 foobar -> ../folder1/foobar
lrwxrwxrwx 1 abc abc 20 oct. 26 11:57 foobarfoo -> ../folder1/foobarfoo
lrwxrwxrwx 1 abc abc 20 oct. 26 11:57 foofoobar -> ../folder1/foofoobar
こんにちは、うまくいきません、それは壊れた* foo *という名前のファイル。ファイルがサブ1サブサブディレクトリにあると考えてください。 – Krotanix
1ストロークでglobstarで
for fileName in `find folder1 -name *foo*`
do
name1=`basename $fileName`
ln -sf $fileName folder/$name1
done
試したコードを貼り付けることはできますか? – skr
本当に[Unix&Linux Stack Exchange](https://unix.stackexchange.com/)にあるはずです。 – Tigger
for i ../[folder1 directory] / * scn *; ln -s $ iを実行します。完了しました これはフォルダ2にあります – Krotanix