ls *.pdf reclama: ls: opção inválida -- '_'

ls *.pdf reclama: ls: opção inválida -- '_'

Estou acostumado a usar 'ls' como faria no Linux Mint, por exemplo, 'ls *.pdf', mas nesta variante do Debian 'ls.pdf' reclama. Eu me pego usando um comprimento 'find -maxprofundidade 1 -type f -name ".pdf" -print' em vez disso.

Lendo isso:está funcionando de forma estranhanão ajudou muito. Eu tenho o pacote bash_completions e não tenho aliases estranhos para 'ls' no meu arquivo '~/.bashrc' - eu nunca edito o '/etc/profile' ou o global, onde quer que esteja.

Apenas supondo, apliquei a solução na pergunta vinculada, mas não funcionou. Não entendo completamente 'completo' - acho que faz parte de 'readline' - então talvez uma breve explicação também ajudasse (não tem página de 'man').

Porém, isso funciona: 'complete -p ls *.pdf', que 'complete --help' diz,

 -p        print existing completion specifications in a reusable format

e então me pergunto se devo aplicar permanentemente esta 'regra'? usando o sinalizador '-D' ...?

EDITAR

Acabei de notar esse problema também:

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

mv: invalid option -- 'R'

EDITAR 2

Tentei os dois comandos acima e eles funcionaram bem - na partição do meu sistema operacional. Os problemas são quando mudo para uma partição diferente, com o Linux Mint funcionando e os arquivos PDF que desejo modificar, e esses comandos falham. Ambas as partições são ext4, ambas têm o mesmo nome de usuário, nome de host, UID/GID, permissões, etc.

Responder1

Parece que você tem nomes de arquivos com traço inicial -, então use:

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

De man bash:

A --sinaliza o fim das opções e desativa o processamento adicional de opções. Quaisquer argumentos após -- são tratados como nomes de arquivos e argumentos. Um argumento de - é equivalente a --.

Responder2

Se você tiver nomes de arquivos que começam com -(menos ou hífen), muitos programas os interpretam como opções.

Você pode preceder ./o caminho para evitá-lo:

ls ./*.pdf

Muitos programas também permitem a inserção de --argumentos antes do nome do arquivo para sinalizar o fim das opções:

ls -- *.pdf

A abordagem recomendada para os usuários é renomear os arquivos.

informação relacionada