파일·디렉터리 명령
3. 코드 예제
예제 1: 둘러보기 — 01_files.sh 발췌
mkdir -p docs/2026 src/main .hidden
touch docs/readme.txt docs/2026/plan.md src/main/App.java .hidden/secret
ls
ls -l | head -n 3
ls -a | grep hidden
ls -R docs | head -n 6docs
src
total 0
drwxr-xr-x 1 kjuyk 197609 0 9월 10 17:05 docs
drwxr-xr-x 1 kjuyk 197609 0 9월 10 17:05 src
.hidden
docs:
2026
readme.txt
docs/2026:
plan.mdls 는 숨김 폴더 .hidden 을 보여 주지 않고 -a 를 붙여야 나옵니다. -R 은 폴더별로 구분해서 하위까지 펼칩니다.
예제 2: 복사·이동·삭제 — 01_files.sh 발췌
cp docs/readme.txt docs/readme.bak
cp -r docs docs_backup
mv docs/readme.bak docs/README.md
mv docs/README.md src/
rm docs/readme.p
rmdir a/b/c
rm -r a
ls armdir: failed to remove 'a/b/c': Directory not empty
ls: cannot access 'a': No such file or directoryrmdir 는 빈 폴더만 지우므로 파일이 있으면 실패합니다. rm -r 로 지운 뒤 ls a 가 없다고 답하는 것이 삭제 확인입니다.
예제 3: 내용 보기 — 01_files.sh 발췌
printf 'line %d\n' $(seq 1 30) > docs/nums.txt
head -n 3 docs/nums.txt
tail -n 2 docs/nums.txt
wc -l docs/nums.txt
file docs/nums.txt src/main/App.javaline 1
line 2
line 3
line 29
line 30
30 docs/nums.txt
docs/nums.txt: ASCII text
src/main/App.java: emptyprintf 와 seq 로 30줄 파일을 만들어 앞뒤를 봤습니다. file 이 빈 파일을 empty 로 알려 줍니다.
예제 4: 찾기와 용량 — 01_files.sh 발췌
find . -name '*.txt'
find . -type d -name '20*'
find . -name '*.txt' -exec wc -l {} +
du -sh */ | sort -rh | head -n 3
stat -c '%n %s bytes %A %y' docs/nums.txt./docs/nums.txt
./docs/readme.txt
./docs_backup/readme.txt
./docs/2026
./docs_backup/2026
30 ./docs/nums.txt
0 ./docs/readme.txt
0 ./docs_backup/readme.txt
30 total
1.0K docs/
0 src/
docs/nums.txt 231 bytes -rw-r--r-- 2026-09-10 17:05:18 +0900-exec wc -l {} + 가 찾은 세 파일을 한 번에 wc 에 넘겨 합계까지 나왔습니다.