(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:num) op: assign_op.Equal rhs: {(DQ <20>)} spids: [60] ) ] ) (command.ShFunction name: usage body: (BraceGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'Usage: '> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {($ Id.VSub_Number '$0')}) ) <' [-nr] [-na] [-n#] [-s] [-r] [path...]'> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple words: [{<echo>}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <' -nr do not recurse'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <' -na ignore files starting with .'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple words: [ {<echo>} { (DQ <' -n# list the newest # files ('> ($ Id.VSub_DollarName '$num') <' by default)'> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <' -r reverse to show oldest files'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:num) op: assign_op.Equal rhs: {(DQ <-n> ($ Id.VSub_DollarName '$num'))} spids: [146] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dotfiles) op: assign_op.Equal rhs: {(DQ <yes>)} spids: [152] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:recurse) op: assign_op.Equal rhs: {(DQ <yes>)} spids: [157] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:reverse) op: assign_op.Equal rhs: {(DQ )} spids: [162] ) ] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{<-->}] action: [ (command.Sentence child: (C {<shift>}) terminator: <Id.Op_Semi _> ) (command.ControlFlow token:<Id.ControlFlow_Break break>) ] spids: [182 183 190 -1] ) (case_arm pat_list: [{<-na>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dotfiles) op: assign_op.Equal rhs: {(DQ <no>)} spids: [196] ) ] ) ] spids: [193 194 201 -1] ) (case_arm pat_list: [{<-nr>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:recurse) op: assign_op.Equal rhs: {(DQ <no>)} spids: [207] ) ] ) ] spids: [204 205 212 -1] ) (case_arm pat_list: [ {<-n> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:num) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [222] ) ] ) ] spids: [215 220 225 -1] ) (case_arm pat_list: [{<-r>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:reverse) op: assign_op.Equal rhs: {(DQ <r>)} spids: [231] ) ] ) ] spids: [228 229 236 -1] ) (case_arm pat_list: [{<--help>}] action: [(C {<usage>})] spids: [239 240 244 -1] ) (case_arm pat_list: [{<--version>}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<echo>} {(DQ <1.1>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] ) ] spids: [247 248 260 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [263 264 268 -1] ) ] ) (C {<shift>}) ] ) ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$dotfiles'))} {<Id.Lit_Equals '='>} {(DQ <no>)} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ignore_hidden) op: assign_op.Equal rhs: {(DQ <'-name \'.*\' -o'>)} spids: [294] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$recurse'))} {<Id.Lit_Equals '='>} {(DQ <no>)} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dont_recurse) op: assign_op.Equal rhs: {(DQ <'-maxdepth 1'>)} spids: [315] ) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:path_format) op: assign_op.Equal rhs: {(DQ <'%p'>)} spids: [336] ) ] ) ] spids: [320 333] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:path_format) op: assign_op.Equal rhs: {(DQ <'%P'>)} spids: [344] ) ] ) (C {<set>} {<-->} {(DQ <'./'>)}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ignore_metadata) op: assign_op.Equal rhs: { (DQ <Id.Lit_BadBackslash '\\'> <'( -type d -a '> <Id.Lit_BadBackslash '\\'> <'( -name \'.git\' -o -name \'.svn\' -o -name \'CVS\' '> <Id.Lit_BadBackslash '\\'> <') '> <Id.Lit_BadBackslash '\\'> <') -prune -o'> ) } spids: [361] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:print_format) op: assign_op.Equal rhs: { (DQ <Id.Lit_BadBackslash '\\'> <'( -type f -printf \'%T@'> <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_DollarName '$path_format') <Id.Lit_BadBackslash '\\'> <'n\' '> <Id.Lit_BadBackslash '\\'> <')'> ) } spids: [373] ) ] ) (command.Pipeline children: [ (C {<eval>} {<find>} {(SQ <'"$@"'>)} {($ Id.VSub_DollarName '$dont_recurse')} {($ Id.VSub_DollarName '$ignore_metadata')} {($ Id.VSub_DollarName '$ignore_hidden')} {($ Id.VSub_DollarName '$print_format')} ) (C {<sort>} {<-k1> <Id.Lit_Comma ','> <1> (${ Id.VSub_Name reverse) <n>}) (C {<tail>} {($ Id.VSub_DollarName '$num')}) (C {<cut>} {<-f2->}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-p>} {<'/proc/self/fd/1'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {<tr>} {(SQ <'\\n'>)} {(SQ <'\\0'>)}) (C {<xargs>} {<-r0>} {<ls>} {<-lUd>} {<--color> <Id.Lit_Equals '='> <auto>} {<-->}) ] negated: F ) ] spids: [428 441] ) ] else_action: [(C {<cat>})] ) ] negated: F ) ] )