[Bash] 파일명을 활용해 작업하는 기초 명령어
2023. 11. 3. 17:24ㆍDevelopers 공간 [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
- 기호모드(chmod)
# 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
- which :특정명령어의 위치를 찾아주는 명령어
# binary file의 위치
which 명령어
# 전체 library등 까지의 위치
whereis 명령어
- 어떠한 파일의 절대경로를 찾기
# absolute path 얻기
realpath ./FILE
728x90
반응형
'Developers 공간 [Shorts] > Software Basic' 카테고리의 다른 글
[Docker] no space left on device (0) | 2023.11.18 |
---|---|
[PyTorch] 특정 GPU로 정해 동작시키기 (1) | 2023.11.08 |
[Python] 프로젝트 내 패키지 import 방법 (0) | 2023.11.03 |
[Bash] Background로 프로그램 돌리기 (0) | 2023.11.01 |
[Bash] 서버에서 자료 가져오기 (port, 방화벽) (0) | 2023.10.27 |