我有一个文件夹(例如/ data),其中包含一组文件:a.txt,b.bin,c.bak,d.txt,e.bin。我需要在文件夹(/ dataIL)中创建具有完全相同名称(1-1映射)的文件的链接。也就是说,/ dataIL应该有5个链接:
a.txt->../data/a.txt
b.bin->../data/b.bin
c.bak->../data/c.bak
d.txt->../data/d.txt
e.bin->../data/e.bin
创建一个链接的命令是: ln -s ../data/a.txt a.txt
想知道我可以运行哪些脚本命令来为所有文件创建。请注意,还有其他扩展名的文件。我只需要链接到任何扩展名的所有文件。
我有一个bash shell。谢谢。
答案 0 :(得分:4)
您可以简单地使用星号来创建指向所有文件的符号链接,因为它们位于一个目录中:
ln -s data/* .
这假设您要创建data
中所有文件的链接。另请注意,根据您的设置,这可能会跳过名称以点开头的文件。
答案 1 :(得分:1)
find ../data -maxdepth 1 -type f -exec bash -c "ln -s {} \`basename {}\`" \;
../ data可以是任何目录