2

我有一个文件夹(例如 /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 外壳。谢谢。

4

2 回答 2

4

您可以简单地使用星号创建指向所有文件的符号链接,因为它们位于一个目录中:

ln -s data/* .

这假设您想要创建指向data. 另请注意,根据您的设置,这可能会跳过名称以点开头的文件。

于 2012-04-16T16:40:54.770 回答
1
find ../data -maxdepth 1 -type f -exec bash -c "ln -s {} \`basename {}\`" \;

../data 可以是任何目录

于 2012-04-16T16:42:24.097 回答