ls *.pdf жалуется: ls: недопустимая опция -- '_'

ls *.pdf жалуется: ls: недопустимая опция -- '_'

Я привык использовать «ls» так же, как в Linux Mint, например, «ls *.pdf», но в этом варианте Debian «ls.pdf' жалуется. Я обнаружил, что использую длину 'find -maxdepth 1 -type f -name "Вместо этого используйте .pdf" -print'.

Читаю это:работает странноне слишком помогло. У меня есть пакет bash_completions и у меня нет странных псевдонимов для 'ls' в моем файле '~/.bashrc' - я никогда не редактирую '/etc/profile' или глобальный, где бы он ни находился.

Просто предполагаю, я применил решение в связанном вопросе, но оно не сработало. Я не совсем понимаю 'complete' - полагаю, это часть 'readline' - так что, возможно, краткое объяснение тоже поможет (у него нет страницы 'man').

Но это работает: «complete -p ls *.pdf», о чем говорит «complete --help»,

 -p        print existing completion specifications in a reusable format

и поэтому я задаюсь вопросом, стоит ли мне постоянно применять это «правило»? используя флаг «-D»…?

РЕДАКТИРОВАТЬ

Только что заметил эту проблему:

for f in *.pdf; do mv "$f" "BOOK - $F"; done

mv: invalid option -- 'R'

ПРАВКА 2

Я попробовал две команды выше, и они отлично работают - на разделе моей ОС. Проблемы в том, что когда я перемещаюсь на другой раздел с работающим Linux Mint и файлами pdf, которые я хочу изменить, эти команды не работают. Оба раздела - ext4, оба имеют одинаковое имя пользователя, имя хоста, UID/GID, разрешения и т. д.

решение1

Похоже, у вас есть имена файлов с дефисом в начале -, поэтому используйте:

for f in *.pdf; do mv -- "$f" "BOOK - $F"; done

От man bash:

A --сигнализирует об окончании опций и отключает дальнейшую обработку опций. Любые аргументы после -- рассматриваются как имена файлов и аргументы. Аргумент - эквивалентен --.

решение2

Если имена файлов начинаются с -(минуса или дефиса), многие программы интерпретируют их как параметры.

Чтобы избежать этого , можно добавить ./к пути:

ls ./*.pdf

Многие программы также позволяют вставлять --аргументы перед именем файла, чтобы обозначить конец опций:

ls -- *.pdf

Рекомендуемый подход для пользователей — конечно же, переименовывать файлы.

Связанный контент