ln 在命令行上有效,但在脚本中无效

ln 在命令行上有效,但在脚本中无效

我尝试这个:

for file in `ls -1 ../files/file_??_??.dat` ; do echo "$file" ; ln "$file"  ; done

并且对于每个文件都会出现此错误:

ln: 无法创建硬链接 './file_01_am.dat' => '../files/file_01_am.dat': 没有此文件或目录

但在命令行上这可以正常工作:

ln ../files/file_01_am.dat

为什么ln在循环中失败(也只是直接在命令行上写)而直接执行时在命令行上不会失败?

仅供参考,以下命令也会以与上述循环相同的方式失败(为了达到更好的效果,该命令还会尝试绝对路径名):

find /media/files -name "file_??_??.dat" -print0 | xargs -0 -L 1 ln

我真的不想手动硬链接每个文件!

files目录是已安装的smb文件系统。奇怪的是,ln如果我直接发出该命令,该命令可以正常工作,但在任何类型的循环中执行时则不行。

请帮忙。

答案1

用这个 :

find /media/file_??_??.dat -exec ln {} \;

相关内容