[root@hoge ~]# systemctl list- ※ここまで打って、TAB を押下すればオプション候補一覧が表示される list-dependencies list-jobs list-sockets list-unit-files list-units [root@hoge ~]# systemctl list-
ところが、例えば、initramfs を再作成するような場面で、、、
[root@hoge ~]# dracut -f /boot/initr ※CentOS 6 以下だと、ここで TAB を押下すれば候補が出たんだけどファイル一覧を出して欲しいのですが、CentOS 7 の場合は、デフォルト設定では候補が出なくなってしまっています。
このケースに限ると、alias の回避と同様に、先頭にバックスラッシュをつければ良いようです。本日、気が付いた。
[root@hoge ~]# \dracut -f /boot/initr initramfs-0-rescue-17561ed66271e2f6923ff3c901624b3a.img initramfs-3.10.0-123.20.1.el7.x86_64.img initramfs-3.10.0-123.20.1.el7.x86_64kdump.img initrd-plymouth.img [root@hoge ~]# \dracut -f /boot/initrしかしながら、次のような場合は、NG のようです。
[root@hoge ~]# \dd if=/dev/uran ※/dev/urandom を出したいが、ここで TAB を押下しても補完してくれないどうにか出来無いもんでしょうかね。
[root@hoge ~]# \dd if= /dev/uran ※このように = の後ろに1スペース入れると TAB 補完が動くのだが、戻るのが面倒
デフォルトの挙動にしたいだけなら、
返信削除complete -r dracut
常にファイル名補完でよいなら
complete -f dracut
で行けそうです。
dd は真面目に対応しないとダメですが、
debian の定義ファイルは対応できているので、
http://anonscm.debian.org/cgit/bash-completion/bash-completion.git/tree/completions/dd
これを参考に自前で定義を書くなり、
必要な部分だけ切り出してくるのが楽かと。
over80様、コメントありがとうございました。おかげさまで、重い腰をあげて、学習進められそうです。debian の定義ファイルや man bash を、まじめに読んでみたいと思います。とりあえずは、complete -f dd だけでも、しのげそうです。
削除