我试图从查找命令的结果中创建一个符号链接(软链接)。我使用sed删除文件名前面的./。我这样做是为了让我可以将文件名粘贴到链接保存路径的末尾。我正在使用Ubuntu Server 8.04进行这项工作。从查找中创建符号链接
我这个职位,这是一种解决我的问题的教训,但不quite-
How do I selectively create symbolic links to specific files in another directory in LINUX?
产生的文件名没有工作,虽然如此,我开始努力学习AWK然后决定sed。
我正在使用单线循环来完成此操作。问题在于循环的结构是分隔文件名,为文件名中的每个单词创建一个链接。有相当多的文件,我想自动化每个链接采取它链接文件的文件名的过程。
我很喜欢基本的bash命令,但我远不是命令行专家。我用ls和awk开始了这个工作,然后开始寻找sed。我的sed语法可能会更好,但我已经在两天内学会了这一点,现在我有点卡住了。
为吨find -type f -name "*txt*" | sed -e 's/.//' -e 's$/$$'; do echo ln -s $t ../folder2/$t;
做
任何帮助或建议将不胜感激。谢谢。
可以避开'/'从'输出传递一个列表find'。的路径。 'find */-options ...'我想这也可能有一个选项。 – tripleee
非工作链接的问题是相对路径名称需要相对于链接目标。重写以启动循环一个目录('find source -options ... -exec ln -s'{}'target \;'),使用绝对路径或扩展您的'sed'脚本来解析相对于目的地(在前面添加“../ source /”)。 “ln -s”的第一个参数没有以任何方式被重写,它被逐字地用作符号链接的内容,没有要求或检查它在链接创建时解析为现有文件。 – tripleee
我想你是指'sed'%^ \ ./%%''。为了允许在正则表达式中使用斜杠,'sed'允许你在's'命令之后使用任何标点符号,尽管斜线是传统的默认分隔符,在'vi'和'ed'之前模仿了搜索字符它。或者,您可以反斜杠 - 将分隔符转义为在表达式中将其引用为文字字符。 – tripleee