[Bash] 파일명을 활용해 작업하는 기초 명령어

2023. 11. 3. 17:24Developers 공간 [Shorts]/Software Basic

728x90
반응형
<분류>
A. 수단
- OS/Platform/Tool : Linux, Kubernetes(k8s), Docker, AWS
- Package Manager : node.js, yarn, brew, 
- Compiler/Transpillar : React, Nvcc, gcc/g++, Babel, Flutter

- Module Bundler  : React, Webpack, Parcel

B. 언어
- C/C++, python, Javacsript, Typescript, Go-Lang, CUDA, Dart, HTML/CSS

C. 라이브러리 및 프레임워크 및 SDK
- OpenCV, OpenCL, FastAPI, PyTorch, Tensorflow, Nsight

 


1. What? (현상)

bash를 활용해 작업하는 경우, 기본적인 bash의 명령어들을 활용해 파일을 다루는 경우가 많습니다.

 

이럴 때 필자가 주로 사용하는 기본적인 명령어들을 정리해보고자 합니다.

 


2. Why? (원인)


3. How? (해결책)

  • 파일명을 찾고, 변경하기
# 특정 이름 파일 찾기
find . -name "*.pth"
find . | grep SOMETHING

# 파일 혹은 디렉토리 분류해 찾기
find . -type f
find . -type d

# 파일 찾아 지우기
find . -name "*.so" | xargs rm 
find . -name "*.so" -exec rm {} \;

# 파일 찾아 이름 바꾸기
for i in *.dat; do mv $i $(echo $i | sed 's/_AB_/_CD_/g'); done

** for문을 이해하기 위해 아래 코드를 참조하면 좋습니다. 아래는 폴더내의 모든 zip파일을 unzip하는 코드입니다.

** for file in *.zip; do unzip "${file}"; done

 

  • 내용을 기준으로 찾기
# 내용을 기준으로 하위 폴더까지 검색
grep -r SOMETHING

# 파일줄 번호까지 표시
grep -rn SOMETHING

 

  • 파일의 권한 확인하기
  파일권한 파일링크수 owner  group  파일크기Byte 최근수정 폴더이름
예시 drwxrwxrwx 2 ABC ABC  4096 4월 29 2019 폴더이름
# 몇 개가 나왔는지 확인하기
ls | wc -l

# 화면과 파일에 동시입력
ls -l | tee temp.txt 

# 맨위에 4개만 보기
ls -l | head -4 

# 폴더내부를 보는게 아니라 폴더자체를 조회하고 싶을때
ls -ald ~/폴더

 

  • 파일의 권한 바꿔주기
    • 기호모드(chmod)
      • u g o a : 소유자/그룹/기타/all(생략 시 all)
      • + - = : 부여/제거/통설정
      • r w x : read, write, execute
        ** t (sticky bit) : 오직 owner와 root만 delete/rename 가능하도록 하는 것입니다. 다른 Linux 시스템에 의해 사용될 수도 있는 /tmp와 같은 폴더는 권한을 주어야하지만 다른 유저가 완전한 조작을 할 수 있도록 주면 충돌이 일어날 것입니다. 이 때 이 bit를 활용합니다.
      • ex) chmod uo+r 파일명
      • ex) chmod o=rwx 파일명
      • ex) chmod u=r 파일명
      • ex) chmod o-x  파일명
    • 숫자모드(chmod) : 각 세 묶음을 4 2 1의 뎃셈으로 표현
      • 777 : rwxrwxrwx
      • 110 : r--r-----
      • 645 : rw--w-r-x
      • ex) chmod 444
# change owner of file
chown <owner> file 

# change all below
chown -R <owner> file

# change group of file
chgrp <group> file 

# change authority of file (all)
chmod +X <file> -R

 

  • Symbolic Link(바로가기) 만들어주기
ln -s ORIGINAL Target

 

  • 경로 만들어주기
# directory deep 하게 생성
mkdir -p ABCD/CDC/DCE

 

  • 폴더의 Tree를 확인하기
tree 폴더

 

 

  • 어떠한 명령어의 위치를 찾기
    • which :특정명령어의 위치를 찾아주는 명령어
      ex) which find
    • whereis :whereis는 명령어의 실행파일위치, 소스위치, man 페이지파일의 위치를 찾아주는 명령어이다.
      ex) whereis find
    • locate : 다양한 패턴의 파일들을 찾고자 할 때 매우 유용하게 사용되는 명령어
      ex) locate *.bak
# binary file의 위치
which 명령어 

# 전체 library등 까지의 위치
whereis 명령어

 

  • 어떠한 파일의 절대경로를 찾기
# absolute path 얻기
realpath ./FILE

https://onedaythreecoding.tistory.com/entry/Linux-Chap5-%EC%95%94%EA%B8%B0-%ED%8C%8C%EC%9D%BC-%EC%A0%91%EA%B7%BC-%EA%B6%8C%ED%95%9C-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0

728x90
반응형