如何在Linux中一次性链接指定的非模式匹配文件?
批量链接指定无规律文件的几种方法
针对你需要批量链接指定文件的需求,这里有几个直接可行的方法:
方法1:直接在ln命令后列出所有目标文件
ln命令本身支持一次性传入多个源文件参数,最后指定目标目录即可:
ln -s sourceDirectory/abc.r sourceDirectory/xyz.sh sourceDirectory/uvw.r targetDirectory/
这个方法最直接,适合文件数量不多的场景。
方法2:用xargs配合文件列表处理
如果要链接的文件很多,可以先把文件名写入一个临时文本文件(比如file_list.txt),每行一个文件名:
abc.r xyz.sh uvw.r
然后执行以下命令批量创建链接:
xargs -I {} ln -s sourceDirectory/{} targetDirectory/ < file_list.txt
-I {}参数会把文件里的每一行内容替换成{},再代入ln命令执行。
方法3:用shell循环处理
这种方式更灵活,适合需要对每个文件做额外判断(比如检查文件是否存在)的场景:
for file in abc.r xyz.sh uvw.r; do ln -s sourceDirectory/"$file" targetDirectory/ done
如果需要添加判断逻辑,比如只有源文件存在才创建链接,可以修改成:
for file in abc.r xyz.sh uvw.r; do if [ -f sourceDirectory/"$file" ]; then ln -s sourceDirectory/"$file" targetDirectory/ fi done
内容的提问来源于stack exchange,提问作者Dovini Jayasinghe
相关产品推荐
相关产品推荐

