Есть ли способ отключить разрешение символических ссылок для утилиты OSX «open»?

281
drake

Предположим, у меня есть файл с именем a.txtи другой файл, на b.txtкоторый указывает символическая ссылка a.txt. У меня также есть собственное разработанное приложение, которое устанавливается в качестве приложения по умолчанию для .txtфайлов. Теперь, когда я печатаю

$ open b.txt
в терминале похоже, что openутилита автоматически разрешила символическую ссылку, потому что мое приложение получило a.txtв качестве параметра при запуске.

Есть ли способ отключить разрешение символических ссылок для openутилиты OSX ? Я проверил страницу руководства, openно там нет ничего о символических ссылках.

0

2 ответа на вопрос

0
RedBug
$ find a.txt -type f -exec open {} \; 

-> this open your a.txt file.

$ find b.txt -type f -exec open {} \; 

-> no file is open.

Из вопроса видно, что спрашивающий не хочет, чтобы файлы ** не открывались **. Xe хочет, чтобы файлы открывались ** с исходным именем **, а не именем, взятым из содержимого символической ссылки. JdeBP 10 лет назад 0
Да, именно так, как говорит JdeBP. Но я не уверен, если это возможно, поэтому некоторые обходные пути тоже подойдут. Это немного сложнее, хотя. drake 10 лет назад 0
0
drake

Я нашел обходной путь:

$ open -a /Applications/MyApp.app --args <path_to_file> 

Это заставляет openпередать аргумент без изменений. Но есть одна загвоздка - если вы передаете относительный путь в качестве аргумента, то путь будет относительным к / Applications, а не к вашему текущему каталогу, что немного раздражает. Но это лучшее решение, которое я придумал.