ls *.pdf se queja: ls: opción no válida - '_'

ls *.pdf se queja: ls: opción no válida - '_'

Estoy acostumbrado a usar 'ls' como lo haría en Linux Mint, por ejemplo, 'ls *.pdf', pero en esta variante de Debian 'ls.pdf' se queja. Me encuentro usando una longitud 'find -max Depth 1 -type f -name ".pdf" -print' en su lugar.

Leyendo esto:Está funcionando de manera extrañano ayudó demasiado. Tengo el paquete bash_completions y no tengo alias extraños para 'ls' en mi archivo '~/.bashrc'; nunca edito el '/etc/profile' ni el global, dondequiera que esté.

Solo adivinando, apliqué la solución en la pregunta vinculada pero no funcionó. No entiendo completamente "completo"; supongo que es parte de "línea de lectura", por lo que tal vez una breve explicación también ayudaría (no tiene página de manual).

Sin embargo, esto funciona: 'complete -p ls *.pdf', que dice 'complete --help',

 -p        print existing completion specifications in a reusable format

Entonces me pregunto si debería aplicar permanentemente esta 'regla'. ¿Usando la bandera '-D'...?

EDITAR

Acabo de notar este problema también:

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

mv: invalid option -- 'R'

EDITAR 2

Probé los dos comandos anteriores y funcionan bien en la partición de mi sistema operativo. El problema es que cuando me muevo a una partición diferente, con Linux Mint funcionando y los archivos pdf que quiero modificar, estos comandos fallan. Ambas particiones son ext4, ambas tienen el mismo nombre de usuario, nombre de host, UID/GID, permisos, etc.

Respuesta1

Parece que tienes nombres de archivos con un guión inicial -, así que usa:

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

De man bash:

A --señala el final de las opciones y deshabilita el procesamiento posterior de opciones. Cualquier argumento después de -- se trata como nombre de archivo y argumento. Un argumento de - es equivalente a --.

Respuesta2

Si tiene nombres de archivos que comienzan con -(menos o guión), muchos programas los interpretan como opciones.

Puedes anteponer ./la ruta para evitarla:

ls ./*.pdf

Muchos programas también permiten insertar --argumentos antes del nombre del archivo para señalar el final de las opciones:

ls -- *.pdf

El enfoque recomendado para los usuarios es, por supuesto, cambiar el nombre de los archivos.

información relacionada