오늘은 missing semester의 두 번째 강의인 Shell Tools and Shell Scripting의
연습 문제들을 풀어보려 한다.
ls -l -h -G -t -a
-l : long format으로 출력
-h: -l과 함께 쓰여, 파일 크기를 보기 좋은 단위 형식으로 출력
-G: 색상화 출력
-t: 시간순 정렬(수정 시간 기준)
-a: .와 .. 로 시작하는 디렉토리까지 모두 포함해서 결과를 출력
#!/usr/bin/env sh
runs=0
while [[ "$?" -eq 0 ]]
do
runs=$((runs+1))
./random.sh > out.txt 2>&1
# 여기 stdout이 out.txt를 가리키고 있고,
# stderr를 나타내는 file descriptor 2가 stdout을 나타내는 fd 1이
# 가리키는 곳(out.txt)으로 redirect 하라는 의미
# 즉, stdout, stderr 둘 다 out.txt에 작성된다.
done
echo "It took $runs runs for the script to fail"
cat out.txt
find . -type f -name "*.html" -print0 | xargs -0 tar czf foobar.tar.gz
find의 print0 태그와 xargs의 -0 태그는 항상 같이 쓰인다고 생각하면 좋다.
print0 태그는 find의 결과를 null로 구분하고, xargs의 -0 태그는 이 null을 구분자로 사용하여 입력을 인자로 만들어준다.
find . -type f -print0 | xargs -0 ls -t | head -n1
'Dev > Shell' 카테고리의 다른 글
SpaceVim 에 플러그인 적용하기 (0) | 2022.12.31 |
---|---|
[Shell] source 와 sh 혹은 ./ 의 차이 (0) | 2022.12.30 |
[missing-semester] 간단한 셸(Shell) 사용기 (2) | 2022.12.26 |