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

0

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

Lendo isto: Estou trabalhando estranhamente nã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 seja.

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

Isso funciona assim: 'complete -p ls * .pdf', que 'complete --help' diz,

 -p        print existing completion specifications in a reusable format

e por isso pergunto-me se devo aplicar permanentemente esta 'regra'? usando a bandeira '-D' ...?

EDITAR

Apenas percebi esse problema também:

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

mv: invalid option -- 'R'

EDIT 2

Eu tentei os dois comandos acima e eles funcionam bem - na partição do meu sistema operacional. Os problemas são quando eu passo para uma partição diferente, com o Linux Mint em funcionamento e os arquivos em pdf que eu quero modificar, que esses comandos falham. Ambas as partições são ext4, ambas possuem o mesmo nome de usuário, hostname, UID / GID, permissões, etc.

    
por nate 04.03.2018 / 20:06

2 respostas

1

Parece que você tem nomes de arquivo com o traço principal - , portanto, use:

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

De man bash :

A -- signals the end of options and disables further option processing. Any arguments after the -- are treated as file‐ names and arguments. An argument of - is equivalent to --.

    
por 04.03.2018 / 20:13
1

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

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

ls ./*.pdf

Muitos programas também permitem inserir -- antes dos argumentos do nome do arquivo para sinalizar o final das opções:

ls -- *.pdf

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

    
por 04.03.2018 / 20:51