2020年6月20日土曜日

開発環境

Go Systems Programming: Master Linux and Unix system level programming with Go (Mihalis Tsoukalos(著)、Packt Publishing)のChapter 5(Files and Directories)、Exercises 6.の解答を求めてみる。

コード

package main

import (
 "fmt"
 "os"
 "path/filepath"
)

func walkFn(path string, info os.FileInfo, err error) error {
 fileInfo, err := os.Stat(path)
 if err != nil {
  return err
 }
 mode := fileInfo.Mode()
 if mode.IsRegular() {
  fmt.Println(path)
 }
 return nil
}
func main() {
 args := os.Args
 if len(args) == 1 {
  fmt.Fprintln(os.Stderr, "Not enough arguments!")
  os.Exit(1)
 }
 path := args[1]
 err := filepath.Walk(path, walkFn)
 if err != nil {
  fmt.Fprintln(os.Stderr, err)
  os.Exit(1)
 }
}

入出力結果(Zsh、PowerShell、Terminal)

 % go build
% ./traverse_file 
Not enough arguments!
% ./traverse_file .
traverse_file
traverse_file.go
% ./traverse_file /etc 
% ./traverse_file /usr 
stat /usr/X11: no such file or directory
% ./traverse_file /usr/bin
/usr/bin/2to3-
/usr/bin/2to3-2.7
/usr/bin/AssetCacheLocatorUtil
/usr/bin/AssetCacheManagerUtil
/usr/bin/AssetCacheTetheratorUtil
/usr/bin/BuildStrings
/usr/bin/CpMac
/usr/bin/DeRez
/usr/bin/GetFileInfo
/usr/bin/IOAccelMemory
/usr/bin/MergePef
/usr/bin/MvMac
/usr/bin/ResMerger
/usr/bin/Rez
/usr/bin/RezDet
/usr/bin/RezWack
/usr/bin/SafeEjectGPU
/usr/bin/SetFile
/usr/bin/SplitForks
/usr/bin/UnRezWack
/usr/bin/a2p
/usr/bin/a2p5.18
/usr/bin/actool
/usr/bin/addftinfo
/usr/bin/afclip
/usr/bin/afconvert
/usr/bin/afhash
/usr/bin/afida
/usr/bin/afinfo
/usr/bin/afmtodit
/usr/bin/afplay
/usr/bin/afscexpand
/usr/bin/agentxtrap
/usr/bin/agvtool
/usr/bin/alias
/usr/bin/app-sso
/usr/bin/applesingle
/usr/bin/appletviewer
/usr/bin/apply
/usr/bin/apropos
/usr/bin/apt
/usr/bin/ar
/usr/bin/arch
/usr/bin/as
/usr/bin/asa
/usr/bin/asctl
/usr/bin/assetutil
/usr/bin/at
/usr/bin/atos
/usr/bin/atq
/usr/bin/atrm
/usr/bin/atsutil
/usr/bin/automator
/usr/bin/auval
/usr/bin/auvaltool
/usr/bin/avbdiagnose
/usr/bin/avbutil
/usr/bin/avconvert
/usr/bin/avmetareadwrite
/usr/bin/awk
/usr/bin/banner
/usr/bin/base64
/usr/bin/basename
/usr/bin/bashbug
/usr/bin/batch
/usr/bin/bc
/usr/bin/bg
/usr/bin/biff
/usr/bin/binhex
/usr/bin/binhex.pl
/usr/bin/binhex5.18.pl
/usr/bin/binhex5.28.pl
/usr/bin/bioutil
/usr/bin/bison
/usr/bin/bitesize.d
/usr/bin/brctl
/usr/bin/bsdtar
/usr/bin/bspatch
/usr/bin/bundle
/usr/bin/bundler
/usr/bin/bunzip2
/usr/bin/bzcat
/usr/bin/bzcmp
/usr/bin/bzdiff
/usr/bin/bzegrep
/usr/bin/bzfgrep
/usr/bin/bzgrep
/usr/bin/bzip2
/usr/bin/bzip2recover
/usr/bin/bzless
/usr/bin/bzmore
/usr/bin/c++
/usr/bin/c++filt
/usr/bin/c2ph
/usr/bin/c2ph5.18
/usr/bin/c89
/usr/bin/c99
/usr/bin/caffeinate
/usr/bin/cal
/usr/bin/calendar
/usr/bin/cancel
/usr/bin/cap_mkdb
/usr/bin/captoinfo
/usr/bin/cc
/usr/bin/cd
/usr/bin/certtool
/usr/bin/checknr
/usr/bin/chflags
/usr/bin/chfn
/usr/bin/chgrp
/usr/bin/chpass
/usr/bin/chsh
/usr/bin/cksum
/usr/bin/clang
/usr/bin/clang++
/usr/bin/clear
/usr/bin/cmp
/usr/bin/cmpdylib
/usr/bin/codesign
/usr/bin/codesign_allocate
/usr/bin/col
/usr/bin/colcrt
/usr/bin/colldef
/usr/bin/colrm
/usr/bin/column
/usr/bin/comm
/usr/bin/command
/usr/bin/compress
/usr/bin/compression_tool
/usr/bin/config_data
/usr/bin/config_data5.18
/usr/bin/corelist
/usr/bin/corelist5.18
/usr/bin/corelist5.28
/usr/bin/cpan
/usr/bin/cpan2dist
/usr/bin/cpan2dist5.18
/usr/bin/cpan5.18
/usr/bin/cpan5.28
/usr/bin/cpanp
/usr/bin/cpanp-run-perl
/usr/bin/cpanp-run-perl5.18
/usr/bin/cpanp5.18
/usr/bin/cpio
/usr/bin/cpp
/usr/bin/cpu_profiler.d
/usr/bin/cpuctl
/usr/bin/cpuwalk.d
/usr/bin/crc32
/usr/bin/crc325.18
/usr/bin/crc325.28
/usr/bin/creatbyproc.d
/usr/bin/crlrefresh
/usr/bin/crontab
/usr/bin/csdiagnose
/usr/bin/csgather
/usr/bin/csplit
/usr/bin/csreq
/usr/bin/csrutil
/usr/bin/ctags
/usr/bin/ctf_insert
/usr/bin/cu
/usr/bin/cups-config
/usr/bin/cupstestppd
/usr/bin/curl
/usr/bin/curl-config
/usr/bin/cut
/usr/bin/cvaffinity
/usr/bin/cvcp
/usr/bin/cvmkdir
/usr/bin/cvmkfile
/usr/bin/dappprof
/usr/bin/dapptrace
/usr/bin/darwinup
/usr/bin/db_archive
/usr/bin/db_checkpoint
/usr/bin/db_codegen
/usr/bin/db_deadlock
/usr/bin/db_dump
/usr/bin/db_hotbackup
/usr/bin/db_load
/usr/bin/db_printlog
/usr/bin/db_recover
/usr/bin/db_stat
/usr/bin/db_upgrade
/usr/bin/db_verify
/usr/bin/dbicadmin
/usr/bin/dbicadmin5.18
/usr/bin/dbicadmin5.28
/usr/bin/dbilogstrip
/usr/bin/dbilogstrip5.18
/usr/bin/dbilogstrip5.28
/usr/bin/dbiprof
/usr/bin/dbiprof5.18
/usr/bin/dbiprof5.28
/usr/bin/dbiproxy
/usr/bin/dbiproxy5.18
/usr/bin/dbiproxy5.28
/usr/bin/dc
/usr/bin/debinhex.pl
/usr/bin/debinhex5.18.pl
/usr/bin/debinhex5.28.pl
/usr/bin/defaults
/usr/bin/delv
/usr/bin/desdp
/usr/bin/diagnose-fu
/usr/bin/diff
/usr/bin/diff3
/usr/bin/diffstat
/usr/bin/dig
/usr/bin/dirname
/usr/bin/dispqlen.d
/usr/bin/ditto
/usr/bin/dmc
/usr/bin/dns-sd
/usr/bin/drutil
/usr/bin/dscacheutil
/usr/bin/dscl
/usr/bin/dserr
/usr/bin/dsexport
/usr/bin/dsimport
/usr/bin/dsmemberutil
/usr/bin/dsymutil
/usr/bin/dtruss
/usr/bin/du
/usr/bin/dwarfdump
/usr/bin/easy_install
/usr/bin/easy_install-2.7
/usr/bin/egrep
/usr/bin/enc2xs
/usr/bin/enc2xs5.18
/usr/bin/enc2xs5.28
/usr/bin/encguess
/usr/bin/encguess5.28
/usr/bin/encode_keychange
/usr/bin/env
/usr/bin/eqn
/usr/bin/erb
/usr/bin/errinfo
/usr/bin/ex
/usr/bin/execsnoop
/usr/bin/expand
/usr/bin/expect
/usr/bin/extcheck
/usr/bin/eyapp
/usr/bin/eyapp5.18
/usr/bin/eyapp5.28
/usr/bin/false
/usr/bin/fc
/usr/bin/fddist
/usr/bin/fdesetup
/usr/bin/fg
/usr/bin/fgrep
/usr/bin/file
/usr/bin/filebyproc.d
/usr/bin/fileproviderctl
/usr/bin/filtercalltree
/usr/bin/find
/usr/bin/find2perl
/usr/bin/find2perl5.18
/usr/bin/findrule
/usr/bin/findrule5.18
/usr/bin/findrule5.28
/usr/bin/finger
/usr/bin/fixproc
/usr/bin/flex
/usr/bin/flex++
/usr/bin/fmt
/usr/bin/fold
/usr/bin/fontrestore
/usr/bin/footprint
/usr/bin/format-sql
/usr/bin/format-sql5.18
/usr/bin/format-sql5.28
/usr/bin/from
/usr/bin/fs_usage
/usr/bin/funzip
/usr/bin/fuser
/usr/bin/fwkdp
/usr/bin/fwkpfv
/usr/bin/g++
/usr/bin/gatherheaderdoc
/usr/bin/gcc
/usr/bin/gcore
/usr/bin/gcov
/usr/bin/gdiffmk
/usr/bin/gem
/usr/bin/gen_bridge_metadata
/usr/bin/gencat
/usr/bin/genstrings
/usr/bin/getconf
/usr/bin/getopt
/usr/bin/getopts
/usr/bin/git
/usr/bin/git-receive-pack
/usr/bin/git-shell
/usr/bin/git-upload-archive
/usr/bin/git-upload-pack
/usr/bin/gm4
/usr/bin/gnumake
/usr/bin/gperf
/usr/bin/grep
/usr/bin/grn
/usr/bin/grodvi
/usr/bin/groff
/usr/bin/groffer
/usr/bin/grog
/usr/bin/grolbp
/usr/bin/grolj4
/usr/bin/grops
/usr/bin/grotty
/usr/bin/groups
/usr/bin/gunzip
/usr/bin/gzcat
/usr/bin/gzexe
/usr/bin/gzip
/usr/bin/h2ph
/usr/bin/h2ph5.18
/usr/bin/h2ph5.28
/usr/bin/h2xs
/usr/bin/h2xs5.18
/usr/bin/h2xs5.28
/usr/bin/hash
/usr/bin/hdid
/usr/bin/hdiutil
/usr/bin/hdxml2manxml
/usr/bin/head
/usr/bin/headerdoc2html
/usr/bin/heap
/usr/bin/hexdump
/usr/bin/hidutil
/usr/bin/hiutil
/usr/bin/host
/usr/bin/hostinfo
/usr/bin/hotspot.d
/usr/bin/hpftodit
/usr/bin/hpmdiagnose
/usr/bin/htmltree
/usr/bin/htmltree5.18
/usr/bin/htmltree5.28
/usr/bin/ibtool
/usr/bin/iconutil
/usr/bin/iconv
/usr/bin/ictool
/usr/bin/id
/usr/bin/idle
/usr/bin/idle2.7
/usr/bin/idlj
/usr/bin/imptrace
/usr/bin/indent
/usr/bin/indxbib
/usr/bin/info
/usr/bin/infocmp
/usr/bin/infokey
/usr/bin/infotocap
/usr/bin/install
/usr/bin/install-info
/usr/bin/install_name_tool
/usr/bin/instmodsh
/usr/bin/instmodsh5.18
/usr/bin/instmodsh5.28
/usr/bin/instruments
/usr/bin/iofile.d
/usr/bin/iofileb.d
/usr/bin/iopattern
/usr/bin/iopending
/usr/bin/iosnoop
/usr/bin/iotop
/usr/bin/ip2cc
/usr/bin/ip2cc5.18
/usr/bin/ip2cc5.28
/usr/bin/ipcount
/usr/bin/ipcount5.18
/usr/bin/ipcount5.28
/usr/bin/ipcrm
/usr/bin/ipcs
/usr/bin/ippeveprinter
/usr/bin/ippfind
/usr/bin/ipptool
/usr/bin/iprofiler
/usr/bin/iptab
/usr/bin/iptab5.18
/usr/bin/iptab5.28
/usr/bin/irb
/usr/bin/jar
/usr/bin/jarsigner
/usr/bin/java
/usr/bin/javac
/usr/bin/javadoc
/usr/bin/javah
/usr/bin/javap
/usr/bin/javapackager
/usr/bin/javaws
/usr/bin/jcmd
/usr/bin/jconsole
/usr/bin/jcontrol
/usr/bin/jdb
/usr/bin/jdeps
/usr/bin/jhat
/usr/bin/jhsdb
/usr/bin/jimage
/usr/bin/jinfo
/usr/bin/jjs
/usr/bin/jmap
/usr/bin/jmc
/usr/bin/jobs
/usr/bin/join
/usr/bin/jot
/usr/bin/jps
/usr/bin/jrunscript
/usr/bin/jsadebugd
/usr/bin/jshell
/usr/bin/json_pp
/usr/bin/json_pp5.18
/usr/bin/json_pp5.28
/usr/bin/json_xs
/usr/bin/json_xs5.28
/usr/bin/jstack
/usr/bin/jstat
/usr/bin/jstatd
/usr/bin/jvisualvm
/usr/bin/kcc
/usr/bin/kdestroy
/usr/bin/kextutil
/usr/bin/keytool
/usr/bin/kgetcred
/usr/bin/kill.d
/usr/bin/killall
/usr/bin/kinit
/usr/bin/klist
/usr/bin/kpasswd
/usr/bin/krb5-config
/usr/bin/kswitch
/usr/bin/ktrace
/usr/bin/lam
/usr/bin/last
/usr/bin/lastcomm
/usr/bin/lastwords
/usr/bin/latency
/usr/bin/layerutil
/usr/bin/ld
/usr/bin/ldapadd
/usr/bin/ldapcompare
/usr/bin/ldapdelete
/usr/bin/ldapexop
/usr/bin/ldapmodify
/usr/bin/ldapmodrdn
/usr/bin/ldappasswd
/usr/bin/ldapsearch
/usr/bin/ldapurl
/usr/bin/ldapwhoami
/usr/bin/leaks
/usr/bin/leave
/usr/bin/less
/usr/bin/lessecho
/usr/bin/lex
/usr/bin/libnetcfg
/usr/bin/libnetcfg5.18
/usr/bin/libnetcfg5.28
/usr/bin/libtool
/usr/bin/lipo
/usr/bin/lkbib
/usr/bin/lldb
/usr/bin/llvm-g++
/usr/bin/llvm-gcc
/usr/bin/loads.d
/usr/bin/locale
/usr/bin/localedef
/usr/bin/locate
/usr/bin/lockstat
/usr/bin/log
/usr/bin/logger
/usr/bin/login
/usr/bin/logname
/usr/bin/look
/usr/bin/lookbib
/usr/bin/lorder
/usr/bin/lp
/usr/bin/lpoptions
/usr/bin/lpq
/usr/bin/lpr
/usr/bin/lprm
/usr/bin/lpstat
/usr/bin/lsappinfo
/usr/bin/lsbom
/usr/bin/lskq
/usr/bin/lsm
/usr/bin/lsmp
/usr/bin/lsvfs
/usr/bin/lwp-download
/usr/bin/lwp-download5.18
/usr/bin/lwp-download5.28
/usr/bin/lwp-dump
/usr/bin/lwp-dump5.18
/usr/bin/lwp-dump5.28
/usr/bin/lwp-mirror
/usr/bin/lwp-mirror5.18
/usr/bin/lwp-mirror5.28
/usr/bin/lwp-request
/usr/bin/lwp-request5.18
/usr/bin/lwp-request5.28
/usr/bin/m4
/usr/bin/macbinary
/usr/bin/macerror
/usr/bin/macerror5.18
/usr/bin/macerror5.28
/usr/bin/machine
/usr/bin/mail
/usr/bin/mailq
/usr/bin/mailx
/usr/bin/make
/usr/bin/makeinfo
/usr/bin/malloc_history
/usr/bin/man
/usr/bin/manpath
/usr/bin/mcxquery
/usr/bin/mcxrefresh
/usr/bin/mddiagnose
/usr/bin/mdfind
/usr/bin/mdimport
/usr/bin/mdls
/usr/bin/mdutil
/usr/bin/memory_pressure
/usr/bin/mesg
/usr/bin/mg
/usr/bin/mib2c
/usr/bin/mib2c-update
/usr/bin/mig
/usr/bin/mkbom
/usr/bin/mkdep
/usr/bin/mkfifo
/usr/bin/mklocale
/usr/bin/mktemp
/usr/bin/mmroff
/usr/bin/mnthome
/usr/bin/moo-outdated
/usr/bin/moo-outdated5.18
/usr/bin/moo-outdated5.28
/usr/bin/moose-outdated
/usr/bin/moose-outdated5.18
/usr/bin/moose-outdated5.28
/usr/bin/more
/usr/bin/mp2bug
/usr/bin/msgs
/usr/bin/nano
/usr/bin/native2ascii
/usr/bin/nbdst
/usr/bin/nc
/usr/bin/ncal
/usr/bin/ncctl
/usr/bin/ncdestroy
/usr/bin/ncinit
/usr/bin/nclist
/usr/bin/ncurses5.4-config
/usr/bin/neqn
/usr/bin/net-server
/usr/bin/net-server5.18
/usr/bin/net-server5.28
/usr/bin/net-snmp-cert
/usr/bin/net-snmp-config
/usr/bin/net-snmp-create-v3-user
/usr/bin/nettop
/usr/bin/newaliases
/usr/bin/newgrp
/usr/bin/newproc.d
/usr/bin/nfsstat
/usr/bin/nice
/usr/bin/nl
/usr/bin/nm
/usr/bin/nmedit
/usr/bin/nohup
/usr/bin/notifyutil
/usr/bin/nroff
/usr/bin/nscurl
/usr/bin/nslookup
/usr/bin/nsupdate
/usr/bin/objdump
/usr/bin/ocspcheck
/usr/bin/od
/usr/bin/odutil
/usr/bin/open
/usr/bin/opendiff
/usr/bin/opensnoop
/usr/bin/openssl
/usr/bin/orbd
/usr/bin/osacompile
/usr/bin/osadecompile
/usr/bin/osalang
/usr/bin/osascript
/usr/bin/otool
/usr/bin/pack200
/usr/bin/package-stash-conflicts
/usr/bin/package-stash-conflicts5.18
/usr/bin/package-stash-conflicts5.28
/usr/bin/pagesize
/usr/bin/pagestuff
/usr/bin/passwd
/usr/bin/paste
/usr/bin/patch
/usr/bin/pathchk
/usr/bin/pathopens.d
/usr/bin/pbcopy
/usr/bin/pbpaste
/usr/bin/pcap-config
/usr/bin/pcsctest
/usr/bin/perl
/usr/bin/perl5.18
/usr/bin/perl5.28
/usr/bin/perlbug
/usr/bin/perlbug5.18
/usr/bin/perlbug5.28
/usr/bin/perldoc
/usr/bin/perldoc5.18
/usr/bin/perldoc5.28
/usr/bin/perlivp
/usr/bin/perlivp5.18
/usr/bin/perlivp5.28
/usr/bin/perlthanks
/usr/bin/perlthanks5.18
/usr/bin/perlthanks5.28
/usr/bin/pfbtops
/usr/bin/pgrep
/usr/bin/phar
/usr/bin/phar.phar
/usr/bin/php
/usr/bin/php-config
/usr/bin/phpize
/usr/bin/pic
/usr/bin/pico
/usr/bin/piconv
/usr/bin/piconv5.18
/usr/bin/piconv5.28
/usr/bin/pidpersec.d
/usr/bin/pip3
/usr/bin/pkgbuild
/usr/bin/pkill
/usr/bin/pl
/usr/bin/pl2pm
/usr/bin/pl2pm5.18
/usr/bin/pl2pm5.28
/usr/bin/plockstat
/usr/bin/pluginkit
/usr/bin/plutil
/usr/bin/pmset
/usr/bin/pod2html
/usr/bin/pod2html5.18
/usr/bin/pod2html5.28
/usr/bin/pod2latex
/usr/bin/pod2latex5.18
/usr/bin/pod2man
/usr/bin/pod2man5.18
/usr/bin/pod2man5.28
/usr/bin/pod2readme
/usr/bin/pod2readme5.18
/usr/bin/pod2readme5.28
/usr/bin/pod2text
/usr/bin/pod2text5.18
/usr/bin/pod2text5.28
/usr/bin/pod2usage
/usr/bin/pod2usage5.18
/usr/bin/pod2usage5.28
/usr/bin/podchecker
/usr/bin/podchecker5.18
/usr/bin/podchecker5.28
/usr/bin/podselect
/usr/bin/podselect5.18
/usr/bin/podselect5.28
/usr/bin/policytool
/usr/bin/post-grohtml
/usr/bin/power_report.sh
/usr/bin/powermetrics
/usr/bin/ppdc
/usr/bin/ppdhtml
/usr/bin/ppdi
/usr/bin/ppdmerge
/usr/bin/ppdpo
/usr/bin/pr
/usr/bin/pre-grohtml
/usr/bin/priclass.d
/usr/bin/pridist.d
/usr/bin/printenv
/usr/bin/printf
/usr/bin/procsystime
/usr/bin/productbuild
/usr/bin/productsign
/usr/bin/profiles
/usr/bin/prove
/usr/bin/prove5.18
/usr/bin/prove5.28
/usr/bin/psed
/usr/bin/psed5.18
/usr/bin/pstopdf
/usr/bin/pstruct
/usr/bin/pstruct5.18
/usr/bin/ptar
/usr/bin/ptar5.18
/usr/bin/ptar5.28
/usr/bin/ptardiff
/usr/bin/ptardiff5.18
/usr/bin/ptardiff5.28
/usr/bin/ptargrep
/usr/bin/ptargrep5.18
/usr/bin/ptargrep5.28
/usr/bin/pwhich
/usr/bin/pwhich5.18
/usr/bin/pwhich5.28
/usr/bin/pwpolicy
/usr/bin/pydoc
/usr/bin/pydoc2.7
/usr/bin/python
/usr/bin/python-config
/usr/bin/python2
/usr/bin/python2.7
/usr/bin/python2.7-config
/usr/bin/python3
/usr/bin/pythonw
/usr/bin/pythonw2.7
/usr/bin/qlmanage
/usr/bin/quota
/usr/bin/rails
/usr/bin/rake
/usr/bin/ranlib
/usr/bin/rdoc
/usr/bin/read
/usr/bin/readlink
/usr/bin/rebase
/usr/bin/redo_prebinding
/usr/bin/refer
/usr/bin/renice
/usr/bin/reset
/usr/bin/resolveLinks
/usr/bin/rev
/usr/bin/ri
/usr/bin/rmic
/usr/bin/rmid
/usr/bin/rmiregistry
/usr/bin/rpcgen
/usr/bin/rs
/usr/bin/rsync
/usr/bin/ruby
/usr/bin/rview
/usr/bin/rvim
/usr/bin/rwbypid.d
/usr/bin/rwbytype.d
/usr/bin/rwsnoop
/usr/bin/s2p
/usr/bin/s2p5.18
/usr/bin/safaridriver
/usr/bin/sample
/usr/bin/sampleproc
/usr/bin/sandbox-exec
/usr/bin/say
/usr/bin/sc_usage
/usr/bin/scandeps.pl
/usr/bin/scandeps5.18.pl
/usr/bin/scandeps5.28.pl
/usr/bin/schemagen
/usr/bin/scp
/usr/bin/screen
/usr/bin/script
/usr/bin/sdef
/usr/bin/sdiff
/usr/bin/sdp
/usr/bin/sdx
/usr/bin/security
/usr/bin/sed
/usr/bin/seeksize.d
/usr/bin/segedit
/usr/bin/seq
/usr/bin/serialver
/usr/bin/servertool
/usr/bin/setregion
/usr/bin/setuids.d
/usr/bin/sfltool
/usr/bin/sftp
/usr/bin/shar
/usr/bin/shasum
/usr/bin/shasum5.18
/usr/bin/shasum5.28
/usr/bin/shlock
/usr/bin/showmount
/usr/bin/sigdist.d
/usr/bin/sips
/usr/bin/size
/usr/bin/slogin
/usr/bin/smbutil
/usr/bin/smtpd.py
/usr/bin/smtpd2.7.py
/usr/bin/snfsdefrag
/usr/bin/snmp-bridge-mib
/usr/bin/snmpbulkget
/usr/bin/snmpbulkwalk
/usr/bin/snmpconf
/usr/bin/snmpdelta
/usr/bin/snmpdf
/usr/bin/snmpget
/usr/bin/snmpgetnext
/usr/bin/snmpinform
/usr/bin/snmpnetstat
/usr/bin/snmpset
/usr/bin/snmpstatus
/usr/bin/snmptable
/usr/bin/snmptest
/usr/bin/snmptranslate
/usr/bin/snmptrap
/usr/bin/snmpusm
/usr/bin/snmpvacm
/usr/bin/snmpwalk
/usr/bin/sntp
/usr/bin/soelim
/usr/bin/sort
/usr/bin/spfd
/usr/bin/spfd5.18
/usr/bin/spfd5.28
/usr/bin/spfquery
/usr/bin/spfquery5.18
/usr/bin/spfquery5.28
/usr/bin/splain
/usr/bin/splain5.18
/usr/bin/splain5.28
/usr/bin/split
/usr/bin/sqlite3
/usr/bin/ssh
/usr/bin/ssh-add
/usr/bin/ssh-agent
/usr/bin/ssh-copy-id
/usr/bin/ssh-keygen
/usr/bin/ssh-keyscan
/usr/bin/stapler
/usr/bin/stat
/usr/bin/stringdups
/usr/bin/strings
/usr/bin/strip
/usr/bin/stty.pl
/usr/bin/stty5.18.pl
/usr/bin/stty5.28.pl
/usr/bin/su
/usr/bin/sudo
/usr/bin/sum
/usr/bin/svn
/usr/bin/svnlook
/usr/bin/svnversion
/usr/bin/sw_vers
/usr/bin/swift
/usr/bin/swiftc
/usr/bin/symbols
/usr/bin/symbolscache
/usr/bin/syscallbypid.d
/usr/bin/syscallbyproc.d
/usr/bin/syscallbysysc.d
/usr/bin/sysdiagnose
/usr/bin/syslog
/usr/bin/systemextensionsctl
/usr/bin/tab2space
/usr/bin/tabs
/usr/bin/tail
/usr/bin/tailspin
/usr/bin/talk
/usr/bin/tar
/usr/bin/taskinfo
/usr/bin/tbl
/usr/bin/tbtdiagnose
/usr/bin/tccutil
/usr/bin/tclsh
/usr/bin/tclsh8.5
/usr/bin/tee
/usr/bin/texi2dvi
/usr/bin/texi2pdf
/usr/bin/texindex
/usr/bin/textutil
/usr/bin/tfmtodit
/usr/bin/tftp
/usr/bin/thermal
/usr/bin/tic
/usr/bin/tidy
/usr/bin/tiff2icns
/usr/bin/tiffutil
/usr/bin/time
/usr/bin/timer_analyser.d
/usr/bin/timerfires
/usr/bin/timesyncanalyse
/usr/bin/tkcon
/usr/bin/tkmib
/usr/bin/tmdiagnose
/usr/bin/tmutil
/usr/bin/tnameserv
/usr/bin/toe
/usr/bin/top
/usr/bin/tops
/usr/bin/topsyscall
/usr/bin/topsysproc
/usr/bin/touch
/usr/bin/tput
/usr/bin/tr
/usr/bin/trace
/usr/bin/traptoemail
/usr/bin/treereg
/usr/bin/treereg5.18
/usr/bin/treereg5.28
/usr/bin/trimforce
/usr/bin/troff
/usr/bin/true
/usr/bin/tset
/usr/bin/tsort
/usr/bin/tty
/usr/bin/type
/usr/bin/ul
/usr/bin/ulimit
/usr/bin/umask
/usr/bin/unalias
/usr/bin/uname
/usr/bin/uncompress
/usr/bin/unexpand
/usr/bin/unifdef
/usr/bin/unifdefall
/usr/bin/uniq
/usr/bin/units
/usr/bin/unpack200
/usr/bin/unvis
/usr/bin/unzip
/usr/bin/unzipsfx
/usr/bin/update_dyld_shared_cache
/usr/bin/update_dyld_shared_cache_root_mode
/usr/bin/uptime
/usr/bin/users
/usr/bin/uucp
/usr/bin/uudecode
/usr/bin/uuencode
/usr/bin/uuidgen
/usr/bin/uulog
/usr/bin/uuname
/usr/bin/uupick
/usr/bin/uustat
/usr/bin/uuto
/usr/bin/uux
/usr/bin/vi
/usr/bin/view
/usr/bin/vim
/usr/bin/vimdiff
/usr/bin/vimtutor
/usr/bin/vis
/usr/bin/vm_stat
/usr/bin/vmmap
/usr/bin/vtool
/usr/bin/w
/usr/bin/wait
/usr/bin/wall
/usr/bin/wc
/usr/bin/wdutil
/usr/bin/what
/usr/bin/whatis
/usr/bin/whereis
/usr/bin/which
/usr/bin/who
/usr/bin/whoami
/usr/bin/whois
/usr/bin/wish
/usr/bin/wish8.5
/usr/bin/write
/usr/bin/wsgen
/usr/bin/wsimport
/usr/bin/xar
/usr/bin/xargs
/usr/bin/xattr
/usr/bin/xattr-2.7
/usr/bin/xcode-select
/usr/bin/xcodebuild
/usr/bin/xcrun
/usr/bin/xcscontrol
/usr/bin/xcsdiagnose
/usr/bin/xed
/usr/bin/xgettext.pl
/usr/bin/xgettext5.18.pl
/usr/bin/xgettext5.28.pl
/usr/bin/xip
/usr/bin/xjc
/usr/bin/xml2-config
/usr/bin/xml2man
/usr/bin/xmlcatalog
/usr/bin/xmllint
/usr/bin/xpath
/usr/bin/xpath5.18
/usr/bin/xpath5.28
/usr/bin/xslt-config
/usr/bin/xsltproc
/usr/bin/xsubpp
/usr/bin/xsubpp5.18
/usr/bin/xsubpp5.28
/usr/bin/xxd
/usr/bin/yaa
/usr/bin/yacc
/usr/bin/yes
/usr/bin/zcat
/usr/bin/zcmp
/usr/bin/zdiff
/usr/bin/zegrep
/usr/bin/zfgrep
/usr/bin/zforce
/usr/bin/zgrep
/usr/bin/zip
/usr/bin/zipcloak
/usr/bin/zipdetails
/usr/bin/zipdetails5.18
/usr/bin/zipdetails5.28
/usr/bin/zipgrep
/usr/bin/zipinfo
/usr/bin/zipnote
/usr/bin/zipsplit
/usr/bin/zless
/usr/bin/zmore
/usr/bin/znew
/usr/bin/zprint
% ./traverse_file /bin    
/bin/[
/bin/bash
/bin/cat
/bin/chmod
/bin/cp
/bin/csh
/bin/dash
/bin/date
/bin/dd
/bin/df
/bin/echo
/bin/ed
/bin/expr
/bin/hostname
/bin/kill
/bin/ksh
/bin/launchctl
/bin/link
/bin/ln
/bin/ls
/bin/mkdir
/bin/mv
/bin/pax
/bin/ps
/bin/pwd
/bin/rm
/bin/rmdir
/bin/sh
/bin/sleep
/bin/stty
/bin/sync
/bin/tcsh
/bin/test
/bin/unlink
/bin/wait4path
/bin/zsh
%

0 コメント:

コメントを投稿