Sed 如何获取符号链接的名称?

Sed 如何获取符号链接的名称?,sed,symlink,cut,Sed,Symlink,Cut,命令的输出如下所示 # ls -l abc.zip lrwxrwxrwx 1 sri dba 122 Mar 27 23:37 /a/b/c/abc.zip -> /x/y/z/abc.zip 我需要提取/剪切->之后的整个路径。我曾经使用过cut-f-d,但有时它不起作用,我想列号正在改变。因此,我需要与之相当的sed。这可能适合您(GNU-sed): 这可能适用于您(GNU-sed): 使用“剪切”只能指定单字符分隔符 对于字符串分隔符,一个简单而清晰的选项是awk。在您的情况下,请

命令的输出如下所示

# ls -l abc.zip
lrwxrwxrwx 1 sri dba 122 Mar 27 23:37 /a/b/c/abc.zip -> /x/y/z/abc.zip
我需要提取/剪切
->
之后的整个路径。我曾经使用过
cut-f-d
,但有时它不起作用,我想列号正在改变。因此,我需要与之相当的
sed

这可能适合您(GNU-sed):

这可能适用于您(GNU-sed):


使用“剪切”只能指定单字符分隔符

对于字符串分隔符,一个简单而清晰的选项是awk。在您的情况下,请尝试:

ls -ls abc.zip | awk -F '->' '{print $2}'

使用“剪切”只能指定单字符分隔符

对于字符串分隔符,一个简单而清晰的选项是awk。在您的情况下,请尝试:

ls -ls abc.zip | awk -F '->' '{print $2}'

您正在阅读的是有关符号链接的信息

用它来代替呢?它不会读取符号链接的值:

或使用
-f
获取完整路径:

readlink -f abc.zip

请参见一个示例:

$ touch a         
$ ln -s a b          # we create a symbolic link "b" to the file "a"
$ ls -l b
lrwxrwxrwx 1 me me 1 Apr  6 09:54 b -> a
$ readlink -f "b"    # we check the full "destination" of the symlink "b"
/home/me/a
$ readlink "b"       # we check the "destination" of the symlink "b"
a

您正在阅读的是有关符号链接的信息

用它来代替呢?它不会读取符号链接的值:

或使用
-f
获取完整路径:

readlink -f abc.zip

请参见一个示例:

$ touch a         
$ ln -s a b          # we create a symbolic link "b" to the file "a"
$ ls -l b
lrwxrwxrwx 1 me me 1 Apr  6 09:54 b -> a
$ readlink -f "b"    # we check the full "destination" of the symlink "b"
/home/me/a
$ readlink "b"       # we check the "destination" of the symlink "b"
a