Обычно необходимо искать документацию команды в ее странице справочника: man g++
. В случае программного обеспечения GNU, такого как GCC, Вы будете обычно находить больше подробной документации в информационном формате, или в HTML на домашней странице программного обеспечения.
C (и C++) компиляторы имеют несколько специфический синтаксис, который не учитывает обычные конвенции для опций (опции прибывают перед операндом, существует дополнительное пространство между опцией и ее аргументом, …). Пространство после -I
является на самом деле дополнительным, но -Wall
потребности быть одним словом.
Вот быстрый обзор той команды (взгляд в документации для деталей):
g++
запустите компилятор C++-Wall
испустите предупреждения на подозрительном коде (-Wall
на самом деле означает важные предупреждения только, не все возможные предупреждения),-I/usr/local/include/thrift
посмотрите в том каталоге для, включают файлы (#include
директивы)*.cpp
скомпилируйте эти файлы-lthrift
ссылка с этой библиотекой (это ищет libthrift.a
). Отметьте это -l
должен прибыть после файлов Вы компилируете, потому что -l
означает, “если существуют какие-либо неопределенные символы в этой точке, ищут определения в specificed библиотеке”-o something
поместите скомпилированный и связанный вывод в указанный файлmv \~ ~/albumName.rar
mv '~' ~/albumName.rar
mv ./~ ~/albumName.rar
Можно всегда защищать символ, который имеет особое значение в оболочке путем помещения обратной косой черты перед ним.
Можно всегда говорить оболочке интерпретировать последовательность буквально путем помещения его в одинарных кавычках. Единственный символ, что Вы не можете вставить такую литеральную строку, является самой одинарной кавычкой, так как это указывает на конец литеральной строки. Можно использовать '\''
вместо этого; это означает “конец литерала, символа '
, запустите литерала”, но можно думать о нем как о странном способе поместить одинарную кавычку в литеральной строке в одинарных кавычках.
Символ ~
является только особенным в начале пути, поэтому если Вы помещаете признак каталога, ~
будет название файла в этом каталоге.
Обратите внимание на это, если имя файла начинается -
, только последний из этих трех методов будет работать. Это вызвано тем, что -
не является особенным для оболочки; это имеет особое значение к команде: это указывает на опцию. Другой способ защитить -
против этого особого значения должен поместить специальную опцию --
перед ним: --
на командной строке указывает на конец опций, только имена файлов (или другие аргументы неопции) могут прибыть после него.
Обратите внимание также, что команда, которую Вы показываете, должна была скопировать файл в Ваш корневой каталог, как ~
символ должен был быть интерпретирован оболочкой. Возможно, что Вы ввели с опечаткой и создали файл, которым это не называют ~
. Выполненный ls -q
или ls -Q
видеть, содержит ли имя файла непечатный символ. Если это не обеспечивает визуального признака, попробовать ls | od -t o1
, который покажет восьмеричный код для каждого байта в имени файла. В ksh, ударе или zsh, можно использовать $'\123'
в командной строке для определения символа его восьмеричным кодом. С другой стороны, Вы можете находить шаблон, который соответствует файлу. Например, если Вы решаете, что длина имени файла равняется 3, и что единственные другие файлы, длина которых равняется 2, foo
и bar
, можно переместить файл с
mv ./[^bf]?? ~/albumName.rar
И если Вы готовы использовать мышь, и имя состоит из печатаемых символов, которые Вы не знаете, как ввести: вставка копии имя файла от вывода ls
.
Вставляемое обновление показывает, что это - некоторый высокий ASCII или символ Unicode, не простая тильда... Можно ли использовать mc
или другой файловый менеджер? Как насчет перемещения все остальное из того каталога, затем с помощью заполнения клавишей Tab?
~
интерпретируется как корневой каталог пользователя"), не существует. Простая копия-и-вставка (или ввод его в использовании того же IM как тогда, когда это было первоначально введено) будет работать.
– Ignacio Vazquez-Abrams
05.04.2012, 04:30
--
означать конец опций. – Ignacio Vazquez-Abrams 05.04.2012, 03:50--
: это получает мандат POSIX (кроме нескольких исторических исключений какecho
), и этим обеспечиваютgetopt
, таким образом, в значительной степени любая команда, которая выбирает односимвольные варианты, понимает это. – Gilles 'SO- stop being evil' 05.04.2012, 03:54~
(с тильдой ASCII)? Это, возможно, названный '' или некоторым другим визуально подобным символом (который объяснил бы, как Вы создали файл во-первых: в команде Вы показываете, тильда должна была быть интерпретирована как корневой каталог)? – Gilles 'SO- stop being evil' 05.04.2012, 03:58ls
вывод. – Gilles 'SO- stop being evil' 05.04.2012, 04:13