gbe*_*ley 8 shell bash symlink wildcards
我想为多个文件创建符号链接:
ln -s dev-*.php 's/dev-(.*\.php)/$1/'
Results hoped for:
site.php links to dev-site.php
file.php links to dev-file.php
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最简洁方法是什么?
小智 11
好吧,如果它们都在同一个目录中,您可以在 bash 或任何其他 Bourne-style/POSIX shell 中执行以下操作:
for FILE in dev-*; do ln -s "$FILE" "${FILE#dev-}"; done
Run Code Online (Sandbox Code Playgroud)
这将创建没有“dev-”的符号链接到以“dev-”开头的文件。
我通常使用简短的单线。
for file in dev-*.php; do ln -s $file $(echo "$file" | sed 's/^dev-//'); done
Run Code Online (Sandbox Code Playgroud)
这会循环遍历“dev-*.php”文件,获取不带“dev-”的新名称,然后创建符号链接。