Source: Dev.to | Dec 31, 2025 (UTC)
Bash에서 파일과 디렉토리를 효율적으로 관리하는 방법을 정리했습니다.
pwd echo $PWD
Enter fullscreen mode
Exit fullscreen mode

cd ~user_name # 특정 사용자의 홈 디렉토리 cd - # 이전 디렉토리로 이동
Enter fullscreen mode
Exit fullscreen mode
ls -l # 상세 정보 ls ~ / # 여러 위치 동시 조회 ls -t # 수정 시간순 (최신 먼저) ls -R # 하위 디렉토리 포함 ls -d */ # 디렉토리만 ls -p # 디렉토리에 / 표시 ls -d $PWD/* # 전체 경로 ls -lh file # 파일 용량 (human readable)
Enter fullscreen mode
Exit fullscreen mode
mkdir -p /path/to/directory # 경로상의 모든 디렉토리 생성
Enter fullscreen mode
Exit fullscreen mode
touch filename
Enter fullscreen mode
Exit fullscreen mode
# 덮어쓰기 cat <<END >a.txt aa ab da END # 추가 cat <<END >> a.txt aa ab da END # 한 줄 추가 echo "aa" >> a.txt
Enter fullscreen mode
Exit fullscreen mode
Note:
$가 텍스트에 포함된 경우\$를 사용해야 합니다.
cp source_file destination_file cp -i file1 file2 # 덮어쓰기 전 확인 cp *.txt directory cp * /home/tom/backup cp -R * /home/tom/backup # 재귀적 복사
Enter fullscreen mode
Exit fullscreen mode
mv source_file destination_file mv -i file1 file2 # 덮어쓰기 전 확인 mv file1 file2 file3 dir1 # 여러 파일을 디렉토리로
Enter fullscreen mode
Exit fullscreen mode
rm file1 file2 rm -i file1 file2 # 삭제 전 확인 rm -r dir1 dir2 # 디렉토리 재귀 삭제 rm mysql* # 패턴으로 삭제
Enter fullscreen mode
Exit fullscreen mode
cat filename # 전체 내용 less a.txt # 페이지 단위 file a.zip # 파일 타입 확인
Enter fullscreen mode
Exit fullscreen mode
# 파일명만 추출 basename $file_path # 라인/단어/글자 수 wc filename wc -l # 라인 수만
Enter fullscreen mode
Exit fullscreen mode
# Classes: a(all), u(user/owner), g(group), o(other) # Permissions: read(r,4), write(w,2), execute(x,1) # Operators: +(add), -(remove) chmod -R +xr directory # 재귀적으로 권한 설정 chmod 400 file # 소유자만 읽기 chmod 600 file # 소유자만 읽기/쓰기
Enter fullscreen mode
Exit fullscreen mode
sudo chown -R mysql /usr/local/mysql/data sudo chown -R $(whoami) /usr/local/sbin
Enter fullscreen mode
Exit fullscreen mode
경로
설명
/boot
커널 및 부트 로더
/etc
설정 파일
/etc/init.d
시스템 서비스 스크립트
/bin, /usr/bin
프로그램 (/bin: 시스템, /usr/bin: 사용자)
/sbin, /usr/sbin
슈퍼유저 프로그램
/usr/local
사용자 설치 애플리케이션
/var
변경되는 파일 (로그 등)
/var/log
로그 파일
/lib
공유 라이브러리
/tmp
임시 파일
/dev
장치 파일
du # 디렉토리 용량 df -h # 디스크 사용량
Enter fullscreen mode
Exit fullscreen mode
*는 파일명의 모든 문자와 매칭됩니다:
ls * # 현재 위치와 하위 폴더 파일 echo D* # D로 시작하는 파일 echo [[:upper:]]* # 대문자로 시작하는 파일 echo /usr/*/share # 디렉토리 내 파일 반복 for filename in $dir/*; do fn=$(basename "$filename") if [ -f "$filename" ]; then echo "$fn" fi done
Enter fullscreen mode
Exit fullscreen mode
echo ~ # 현재 사용자 홈 echo ~hyun # hyun 사용자의 홈
Enter fullscreen mode
Exit fullscreen mode
sudo find / -name 'wp-content'
Enter fullscreen mode
Exit fullscreen mode
# Symbolic link 생성 ln -s /path/to/original /path/to/link sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp
Enter fullscreen mode
Exit fullscreen mode
# 압축 tar -czvf name-of-archive.tar.gz /path/to/directory-or-file # 해제 tar -xzvf archive.tar.gz
Enter fullscreen mode
Exit fullscreen mode
# 암호화 압축 zip -er archive.zip folder zip -e archive.zip file # 폴더 제외하고 압축 cd MyFolder; zip -r -X "../MyFolder.zip" *
Enter fullscreen mode
Exit fullscreen mode
${0%/*}
Enter fullscreen mode
Exit fullscreen mode
if [ ! -d "/Users/hyun/temp" ]; then mkdir /Users/hyun/temp fi
Enter fullscreen mode
Exit fullscreen mode
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bash_profile
Enter fullscreen mode
Exit fullscreen mode
Originally published at https://dss99911.github.io
For further actions, you may consider blocking this person and/or reporting abuse
Залишити відповідь