Странная строка «@ (#)» на самом деле используется древней системой управления версиями SCCS . В частности, команда what
просматривает файл (двоичный или текстовый) и находит строки с завершающим символом ASCII-Nul, которые начинаются с "@ (#)", и выводит эту строку. Это позволило вам встраивать номера версий ASCII для печати в файлы «.o» и, в конечном итоге, в исполняемые файлы, чтобы вы могли сказать, какие версии каких файлов оказались в исполняемом файле.
Я думаю, что аналогичную функцию выполняла команда RCS ident
.
Начальный символ «#» превращает оставшуюся часть строки в комментарий ksh
, поэтому я предполагаю, что какой-то проект написал все свои сценарии ksh
так, чтобы SCCS ] what
команда распечатала бы все случаи использования скриптов и т. д.
Если требуется пропустить существующие файлы без обновления , даже если в них есть изменения, используйте флаг --ignore-existing
в команде rsync.
rsync --ignore-existing -avzh --delete --progress --filter = '-p .DS_Store'/Volumes/USBDrive/Foto/*/Volumes/Nas/Foto
можно использовать команду sed pipielined для grep
grep "sda" |sed -n '2'p
, если во второй строке этого не указан конкретный номер строки
-121--251281-Я не знаю, как это сделать с оболочкой. Но так как сценарий уже перехватывает сигнал прерывания, вы можете использовать это и добавить дополнительную команду там, как вы можете выполнять команды с этим интерпретатором, как так:
#!/usr/bin/env ruby
require 'webrick'
system *%W(sudo iptables -I INPUT -p tcp --dport 3000 -j ACCEPT)
server = WEBrick::HTTPServer.new(:Port => 3000,
:DocumentRoot => '~/webrickroot')
# stop server with Ctrl-C
trap('INT') { server.stop; system *%W(sudo iptables -D INPUT -p tcp --dport 3000 -j ACCEPT) }
server.start
Используя для удобства массив пустых разделенных слов с система
, чтобы отразить некоторые проблемы для разумности того, как конструкции команд могут быть интерпретированы и обработаны в целом. Каждый маркер, по-видимому, предоставляется sudo
в качестве аргумента здесь 1 . Разумеется, вам потребуется пароль (дважды), так как для iptables
требуются привилегии суперпользователя для любого существенного использования, включая интерактивное добавление и удаление правил.
1. Как продемонстрировано с системой apt ruby -e '*% W (ls -1 foo; rm -rf/) '
. Конечно, НЕ пытайтесь сделать это без компонента массива splat + word (*% W) при кавычке того, что находится внутри скобок.