Недопустимый параметр ls '2'

У меня есть следующие файлы (среди прочего) в каталоге. Я запускаю Ubuntu 16.04.

484 May 8 21:50 NA19239.vcf 484 May 9 08:50 HG01583.vcf 484 May 9 08:51 HG01595.vcf 0 May 9 15:11 HG00268-WGS-cordSorted.bam.vcf 0 May 9 15:11 HG00096-WGS-cordSorted.bam.vcf 0 May 9 15:11 HG00419-WGS-cordSorted.bam.vcf

, если я пытаюсь

ls *.vcf

Я получаю

ls: invalid option -- '2' Try 'ls --help' for more information.

Я не получаю ошибку для других расширения файлов в каталоге. Я не получаю ошибку для файлов .vcf, когда я запускаю команду в других каталогах. Что вызывает эту ошибку? Я не пробовал ничего, кроме поиска этой ошибки. Спасибо.

4
задан 10 May 2017 в 08:48

3 ответа

Вероятно, у вас есть файл с плохой именем в вашей папке, который расширяется в -2...vcf или что-то подобное. Вы можете запустить ls в этой форме: ls -- *.vcf, чтобы обойти это.

Объяснение:

BASH выполняет расширение подстановочного символа перед запуском ls, поэтому возможно что-то вроде ls -2...vcf blabla01.vcf blabla02.vcf , Добавив две тире, вы указываете ls, где параметры заканчиваются, поэтому он рассматривает -2...vcf как аргумент имени файла.

2
ответ дан 22 May 2018 в 22:46
  • 1
    Есть ли способ использовать --, а также выводить как один столбец с -1? потому что кажется, что я не могу использовать оба – Felipe 18 May 2018 в 19:56
  • 2
    Вероятно, вы просто добавляете -1 в конец команды. Это не сработает, потому что -1 является опцией. -- в основном говорит «больше вариантов после этой точки». Переместите параметр в начало команды, и все должно быть хорошо: ls -1 -- *xml. – Fiisch 19 May 2018 в 11:35

Вероятно, у вас есть файл с плохой именем в вашей папке, который расширяется в -2...vcf или что-то подобное. Вы можете запустить ls в этой форме: ls -- *.vcf, чтобы обойти это.

Объяснение:

BASH выполняет расширение подстановочного символа перед запуском ls, поэтому возможно что-то вроде ls -2...vcf blabla01.vcf blabla02.vcf , Добавив две тире, вы указываете ls, где параметры заканчиваются, поэтому он рассматривает -2...vcf как аргумент имени файла.

2
ответ дан 18 July 2018 в 13:34

Вероятно, у вас есть файл с плохой именем в вашей папке, который расширяется в -2...vcf или что-то подобное. Вы можете запустить ls в этой форме: ls -- *.vcf, чтобы обойти это.

Объяснение:

BASH выполняет расширение подстановочного символа перед запуском ls, поэтому возможно что-то вроде ls -2...vcf blabla01.vcf blabla02.vcf , Добавив две тире, вы указываете ls, где параметры заканчиваются, поэтому он рассматривает -2...vcf как аргумент имени файла.

2
ответ дан 24 July 2018 в 20:12

Другие вопросы по тегам:

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