UNIX find

dotinstall:~ $ mkdir -p test/app{1..5}
dotinstall:~ $ touch test/app{1..5}/app{1..3}{.jpg,.png,.gif}
dotinstall:~ $ ls test/
app1 app2 app3 app4 app5
dotinstall:~ $ ls test/app1
app1.gif app1.png app2.jpg app3.gif app3.png
app1.jpg app2.gif app2.png app3.jpg
dotinstall:~ $ find test -name ‘app3.png’
test/app1/app3.png
test/app2/app3.png
test/app3/app3.png
test/app4/app3.png
test/app5/app3.png
dotinstall:~ $ find test -name ‘app1*’
test/app1
test/app1/app1.jpg
test/app1/app1.png
test/app1/app1.gif
test/app2/app1.jpg
test/app2/app1.png
test/app2/app1.gif
test/app3/app1.jpg
test/app3/app1.png
test/app3/app1.gif
test/app4/app1.jpg
test/app4/app1.png
test/app4/app1.gif
test/app5/app1.jpg
test/app5/app1.png
test/app5/app1.gif
dotinstall:~ $ find test -name ‘app1*’ -type f
test/app1/app1.jpg
test/app1/app1.png
test/app1/app1.gif
test/app2/app1.jpg
test/app2/app1.png
test/app2/app1.gif
test/app3/app1.jpg
test/app3/app1.png
test/app3/app1.gif
test/app4/app1.jpg
test/app4/app1.png
test/app4/app1.gif
test/app5/app1.jpg
test/app5/app1.png
test/app5/app1.gif
dotinstall:~ $ find test -name ‘app1*’ -type d
test/app1
dotinstall:~ $ rm -r test/
dotinstall:~ $

UNIX ブレース展開

dotinstall:~ $ echo {a,b,c}
a b c
dotinstall:~ $ echo {1..10}{a..g}
1a 1b 1c 1d 1e 1f 1g 2a 2b 2c 2d 2e 2f 2g 3a 3b 3c 3d 3e 3f 3g 4a 4b 4c 4d 4e 4f 4g 5a 5b 5c 5d 5e 5f 5g 6a 6b 6c 6d 6e 6f 6g 7a 7b 7c 7d 7e 7f 7g 8a 8b 8c 8d 8e 8f 8g 9a 9b 9c 9d 9e 9f 9g 10a 10b 10c 10d 10e 10f 10g
dotinstall:~ $ mkdir test && cd test
dotinstall:~/test $ mkdir app{1..5}
dotinstall:~/test $ ls
app1 app2 app3 app4 app5
dotinstall:~/test $ touch app{1..5}/test{1..3}{.jpg,.png,.gif}
dotinstall:~/test $ ls app2
test1.gif test1.png test2.jpg test3.gif test3.png
test1.jpg test2.gif test2.png test3.jpg
]dotinstall:~/test $ ]rm app{1..5}/test{1..3}{.jpg,.gif}
bash: ]rm: command not found
dotinstall:~/test $ rm app{1..5}/test{1..3}{.jpg,.gif}
dotinstall:~/test $ ls app2
test1.png test2.png test3.png
dotinstall:~/test $ cd
dotinstall:~ $ rm -r test/
dotinstall:~ $

UNIX パイプ

dotinstall:~ $ ls -l /etc/
total 208
-rw-r–r– 1 root root 7 May 29 2020 alpine-release
drwxr-xr-x 1 root root 4096 Sep 23 2020 apk
drwxr-xr-x 3 root root 4096 Sep 23 2020 ca-certificates
-rw-r–r– 1 root root 5613 Jun 18 2020 ca-certificates.conf
drwxr-xr-x 2 root root 4096 May 29 2020 conf.d
drwxr-xr-x 2 root root 4096 May 29 2020 crontabs
-rw-r–r– 1 root root 89 May 29 2020 fstab
-rw-r–r– 1 root root 693 Sep 23 2020 group
-rw-r–r– 1 root root 682 May 29 2020 group-
-rw-r–r– 1 root root 13 Dec 27 18:11 hostname
-rw-r–r– 1 root root 178 Dec 27 18:11 hosts
drwxr-xr-x 2 root root 4096 May 29 2020 init.d
-rw-r–r– 1 root root 570 May 29 2020 inittab
-rw-r–r– 1 root root 1748 Feb 9 2020 inputrc
-rw-r–r– 1 root root 54 May 29 2020 issue
-rw-r–r– 1 root root 309 Aug 9 2020 localtime
drwxr-xr-x 2 root root 4096 May 29 2020 logrotate.d
drwxr-xr-x 2 root root 4096 May 29 2020 modprobe.d
-rw-r–r– 1 root root 15 May 29 2020 modules
drwxr-xr-x 2 root root 4096 May 29 2020 modules-load.d
-rw-r–r– 1 root root 283 May 29 2020 motd
lrwxrwxrwx 1 root root 12 Dec 27 18:11 mtab -> /proc/mounts
drwxr-xr-x 8 root root 4096 May 29 2020 network
drwxr-xr-x 2 root root 4096 May 29 2020 opt
-rw-r–r– 1 root root 164 May 29 2020 os-release
-rw-r–r– 1 root root 1233 Sep 23 2020 passwd
-rw-r–r– 1 root root 1172 May 29 2020 passwd-
drwxr-xr-x 7 root root 4096 May 29 2020 periodic
-rw-r–r– 1 root root 238 May 29 2020 profile
drwxr-xr-x 1 root root 4096 Sep 23 2020 profile.d
-rw-r–r– 1 root root 1865 May 29 2020 protocols
-rw-r–r– 1 root root 54 Dec 27 18:11 resolv.conf
-rw-r–r– 1 root root 65 May 22 2020 securetty
-rw-r–r– 1 root root 14464 May 29 2020 services
-rw-r—– 1 root shadow 454 Sep 23 2020 shadow
-rw-r—– 1 root shadow 422 May 29 2020 shadow-
-rw-r–r– 1 root root 48 Sep 23 2020 shells
drwxr-xr-x 1 root root 4096 May 29 2020 ssl
-rw-r–r– 1 root root 3941 May 25 2020 sudo.conf
-rw-r–r– 1 root root 6169 May 25 2020 sudo_logsrvd.conf
-rw-r–r– 1 root root 3228 Sep 23 2020 sudoers
drwxr-x— 2 root root 4096 Sep 23 2020 sudoers.d
-r–r—– 1 root root 3174 May 25 2020 sudoers.dist
-rw-r–r– 1 root root 53 May 29 2020 sysctl.conf
drwxr-xr-x 2 root root 4096 May 29 2020 sysctl.d
drwxr-xr-x 13 root root 4096 Sep 23 2020 terminfo
-rw-r–r– 1 root root 5306 May 22 2020 udhcpd.conf
dotinstall:~ $ ls -l /etc/ | grep ‘sudo’
-rw-r–r– 1 root root 3941 May 25 2020 sudo.conf
-rw-r–r– 1 root root 6169 May 25 2020 sudo_logsrvd.conf
-rw-r–r– 1 root root 3228 Sep 23 2020 sudoers
drwxr-x— 2 root root 4096 Sep 23 2020 sudoers.d
-r–r—– 1 root root 3174 May 25 2020 sudoers.dist
dotinstall:~ $ ls -l /etc/ | grep ‘sudo’ | wc -l
5
dotinstall:~ $ ls -l /etc/ | grep ‘sudo’ | wc -l > results.txt
dotinstall:~ $ cat results.txt
5
dotinstall:~ $ rm results.txt
dotinstall:~ $

UNIX リダイレクション

date
dotinstall:~ $ echo ‘cal’ > commands.txt
dotinstall:~ $ cat commands.txt
cal
dotinstall:~ $ echo ‘date’ >> commands.txt
dotinstall:~ $ cat commands.txt
cal
date
dotinstall:~ $ /bin/ash < commands.txt December 2022 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Tue Dec 27 20:04:43 JST 2022 dotinstall:~ $ /bin/ash < commands.txt > results.txt
dotinstall:~ $ cat results.txt
December 2022
Su Mo Tu We Th Fr Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Tue Dec 27 20:05:01 JST 2022
dotinstall:~ $ rm ‘
>