Для утилит GNU, полная документация находится на странице info
, где вы можете прочитать:
-f
Ignored; для совместимости с BSD-версиями `touch '.
См. исторический BSD man страницы для touch , где -f
должен был принудительно использовать касание.
Если вы посмотрите на источник этих старых BSD, там не было utimes ( ) Системный вызов
, поэтому touch
открыть файл в режиме чтения + записи, прочитать один байт, выполнить обратный поиск и записать его снова, чтобы обновить время последнего доступа и последнего изменения .
Очевидно, вам потребовались права доступа на чтение и на запись ( touch
позволит избежать попытки сделать это, если доступ (W_OK | R_OK)
] вернул false ). -f
попытался обойти это, временно изменив разрешения на 0666 !
0666 означает разрешение на чтение и запись для всех. В противном случае (например, с более ограничительным разрешением, таким как 0600, который все еще разрешал бы касание ), что могло означать во время этого короткого окна, процессы, которые в противном случае имели бы разрешение на чтение или запись в файл больше не мог, нарушая функциональность .
Однако это означает, что процессы, которые иначе не имели бы доступа к файлу, теперь имеют короткую возможность открыть его, нарушая безопасность .
Это не очень разумный поступок. Современные реализации touch
этого не делают. С тех пор был введен системный вызов utime ()
, позволяющий изменять время модификации и доступа по отдельности без необходимости смешиваться с содержимым файлов (что означает, что он также работает с нестандартными файлами. ), и для этого нужен только доступ на запись.
GNU touch
по-прежнему не дает сбоя, если передана опция -f
, но просто игнорирует флаг. Таким образом, сценарии, написанные для тех старых версий BSD, не выходят из строя при переносе на системы GNU. В наши дни это не так актуально.
А, мне удалось это решить, и, поскольку других ответов пока нет, я подумал, что могу опубликовать свое решение здесь, если кому-то еще это интересно.
Таким образом, в разделе команд «Добавить пользовательский ярлык» мне пришлось ввести «сорванец --новая -заметка», а не просто «сорванец».
Если вы не знаете, какие параметры команд поддерживаются программой, вы можете просто ввести в терминале «[имя программы] --help», и он выведет их список для вас.
user@laptop:~$ tomboy --help
Tomboy: A simple, easy to use desktop note-taking application.
Copyright © 2004-2007 Alex Graveley
<alex@beatniksoftware.com>
Copyright © 2004-2017 Others
Usage:
--version Print version information.
--help Print this usage message.
--note-path [path] Load/store note data in this directory.
--search [text] Open the search all notes window with the search text.
--new-note Create and display a new note.
--new-note [title] Create and display a new note, with a title.
--open-note [title/url] Display the existing note matching title.
--start-here Display the 'Start Here' note.
--highlight-search [text] Search and highlight text in the opened note.
--addin:html-export-all [path] Exports all notes to HTML in the given location.
--addin:html-export-all-quit [path] Exports all notes to HTML in the given location and then quits.