bash - pasar - renombrar archivos linux masivo
autocompletado bash con nombres de archivo (3)
Ponlos en ~/.bashrc
_cmd() { COMPREPLY=($(ls /var/log/app)); }
complete -F _cmd cmd
Para escribir una función completa de autocompletar,
eche un vistazo a /etc/bash_completion.d/python
.
No puedo hacer funcionar una función simple de autocompletado de bash. Necesito autocompletar nombres de archivos de un directorio predefinido para que se vea así:
$ cmd log<TAB><TAB>
file1.log file2.log file3.log
Donde los archivos son de /var/log/app
.
No veo el sentido de usar ls
cuando el shell puede listar archivos por sí solo, así que aquí está uno que usa solo el shell.
_cmd() {
local files=("/var/log/app/$2"*)
[[ -e ${files[0]} ]] && COMPREPLY=( "${files[@]##*/}" )
}
complete -F _cmd cmd
Encontré esto para funcionar según sea necesario:
COMPREPLY=( $(compgen -W "$(ls /var/log/app/)" -- $cur) )
¡Gracias a dogbane en https://unix.stackexchange.com/questions/28283/autocomplete-of-filename-in-directory !