Sorry instead of alias we have to use the function. Corrected command: mkdir dir;cd dir;<>file;file()bash;*
Thanks and regards. On Wed, Jun 21, 2023, 8:46 AM Lawrence Velázquez <v...@larryv.me> wrote: > On Tue, Jun 20, 2023, at 10:52 PM, LitHack wrote: > > ---------- Forwarded message --------- > > From: LitHack <litha...@gmail.com> > > Date: Wed, Jun 21, 2023, 7:31 AM > > Subject: Command execution by creating file. > > To: <zsh-work...@zsh.org> > > > > > > Special character '*' can be used to execute the command. > > We have to just create a directory and make a file of any character or > word > > and then make alias of the command which we want to execute assigned with > > created file. Now just type the * in terminal and you will that the > command > > be executed. > > This is not true. Alias expansion occurs before filename expansion. > > > But why this happens, * (special character) is used for auto completion > and > > if used as alone it should just print the name of file why it's execute > the > > file name as command. > > This is not true either. What makes you think that it should "just > print the name of file"? > > > Command:mkdir dir;cd dir:<>file;alias file=ls -l;* > > Did you actually run these commands? They don't agree with you. > > bash-5.2$ mkdir dir > bash-5.2$ cd dir > bash-5.2$ <> file > bash-5.2$ alias file='ls -l' > bash-5.2$ * > Usage: file [bcCdEhikLlNnprsvzZ0] [-e test] [-f namefile] [-F > separator] [-m magicfiles] [-M magicfiles] file... > file -C -m magicfiles > Try `file --help' for more information. > > -- > vq >