как заменить пробелы в строке на '\' в bash

Предположим, что имя ссылки существует в результате выполнения (в прошлом):

 ln -s   /the/path/to/a/file   linkname

Затем есть три способа изменить символическую ссылку:

  • Использовать ln с -fпринудительно, и даже для каталогов-n(индексный дескриптор может использоваться повторно):

    ln -sfn /some/new/path linkname
    
  • Удалите символическую ссылку и создайте новую (даже для каталогов):

    rm linkname; ln -s /some/new/path linkname
    
  • создать новую символическую ссылку, затем mvее (атомарное изменение даже для каталогов):

    ln -s  /some/new/path newlinkname
    mv -fT newlinkname linkname             # linkname remains after the command
    
0
07.03.2021, 17:23
1 ответ

Вы должны передать имя каталога функций в кавычках.

$ type foo
foo is a function
foo () 
{ 
    dir="${1}";
    cat "${dir}/test"
}
$ foo "folder 1"
foobar
$ foo folder 1
cat: folder/test: No such file or directory
4
18.03.2021, 22:26

Теги

Похожие вопросы