вытащите файл, названный к ~

Обычно необходимо искать документацию команды в ее странице справочника: 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 поместите скомпилированный и связанный вывод в указанный файл

4
05.04.2012, 04:04
3 ответа
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.

5
27.01.2020, 20:51
  • 1
    Обратите внимание, что обычно только инструменты GNU понимают -- означать конец опций. –  Ignacio Vazquez-Abrams 05.04.2012, 03:50
  • 2
    @IgnacioVazquez-Abrams Большинство команд действительно понимает --: это получает мандат POSIX (кроме нескольких исторических исключений как echo), и этим обеспечивают getopt, таким образом, в значительной степени любая команда, которая выбирает односимвольные варианты, понимает это. –  Gilles 'SO- stop being evil' 05.04.2012, 03:54
  • 3
    @manuzhang - Вы уверенный, что Ваш файл называют ~ (с тильдой ASCII)? Это, возможно, названный '' или некоторым другим визуально подобным символом (который объяснил бы, как Вы создали файл во-первых: в команде Вы показываете, тильда должна была быть интерпретирована как корневой каталог)? –  Gilles 'SO- stop being evil' 05.04.2012, 03:58
  • 4
    @manuzhang Это не тильда ASCII, а ПОЛНОШИРИННАЯ ТИЛЬДА U+FF5E, вероятно, введенная с китайским или японским методом ввода. Или используйте тот же метод ввода или вставку копии символ от ls вывод. –  Gilles 'SO- stop being evil' 05.04.2012, 04:13
  • 5
    , что ошибка!!! Извините, я должен был думать о нем сам и сэкономить Ваше время. Так или иначе, спасибо парни. –  manuzhang 05.04.2012, 04:16

Укажите путь к файлу.

cat ./~
1
27.01.2020, 20:51

Вставляемое обновление показывает, что это - некоторый высокий ASCII или символ Unicode, не простая тильда... Можно ли использовать mc или другой файловый менеджер? Как насчет перемещения все остальное из того каталога, затем с помощью заполнения клавишей Tab?

1
27.01.2020, 20:51
  • 1
    Так как это не на самом деле тильда исходная проблема ("~ интерпретируется как корневой каталог пользователя"), не существует. Простая копия-и-вставка (или ввод его в использовании того же IM как тогда, когда это было первоначально введено) будет работать. –  Ignacio Vazquez-Abrams 05.04.2012, 04:30

Теги

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