홈 › 리눅스 명령어 › 01 / 10

파일·디렉터리 명령

섹션 7진행 0 / 10

3. 코드 예제

예제 1: 둘러보기 — 01_files.sh 발췌

bash
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 6
text
docs
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.md

ls 는 숨김 폴더 .hidden 을 보여 주지 않고 -a 를 붙여야 나옵니다. -R 은 폴더별로 구분해서 하위까지 펼칩니다.

예제 2: 복사·이동·삭제 — 01_files.sh 발췌

bash
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 a
text
rmdir: failed to remove 'a/b/c': Directory not empty
ls: cannot access 'a': No such file or directory

rmdir 는 빈 폴더만 지우므로 파일이 있으면 실패합니다. rm -r 로 지운 뒤 ls a 가 없다고 답하는 것이 삭제 확인입니다.

예제 3: 내용 보기 — 01_files.sh 발췌

bash
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.java
text
line 1
line 2
line 3
line 29
line 30
30 docs/nums.txt
docs/nums.txt:     ASCII text
src/main/App.java: empty

printf 와 seq 로 30줄 파일을 만들어 앞뒤를 봤습니다. file 이 빈 파일을 empty 로 알려 줍니다.

예제 4: 찾기와 용량 — 01_files.sh 발췌

bash
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
text
./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 에 넘겨 합계까지 나왔습니다.