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 или глобальный, где бы он ни находился.
Просто догадываясь, я применил решение в связанном вопросе, но оно не сработало. Я не полностью понимаю "завершено" - я думаю, что это часть "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, разрешения и т. Д.
2 ответа
Кажется, у вас есть имена файлов с лидирующей чертой -
так что используйте:
for f in *.pdf; do mv -- "$f" "BOOK - $F"; done
От man bash
:
--
сигнализирует об окончании параметров и отключает дальнейшую обработку параметров. Любые аргументы после - обрабатываются как имена файлов и аргументы. Аргумент - эквивалентен -.
Если у вас есть имена файлов, которые начинаются с -
(минус или дефис), многие программы интерпретируют их как параметры.
Вы можете подготовить ./
на путь, чтобы избежать этого:
ls ./*.pdf
Многие программы также позволяют вставлять --
перед аргументами имени файла, сигнализирующими об окончании опций:
ls -- *.pdf
Рекомендуемый подход для пользователей - конечно, переименовать файлы.