본문 바로가기
Dev/Shell

[missing-semester] Shell Tools and Shell Scripting (셸 스크립팅)

by 생귄맨 2023. 1. 8.

오늘은 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