학교에서 VM을 할당받으면 맨날 리눅스 VM이었다.
다행히 첫 수업에서 VSC를 활용해 ssh 연결하는 법을 자세히 알려줬었기 때문에 터미널에서 cmd 입력하면서 파일 관리를 할 일은 거의 없었지만...
가끔 VM을 내 실수로 터뜨려버릴때 putty로 원격 접속을 해가지고 분석하거나 특정 파일을 삭제 해야하는 경우는 있었다. (VSC resource 관련 파일이라든가)
오늘은 file, directory를 제거하는 방법을 알아보자.
rm
이나 unlink
명령어를 사용한다. 리눅스 터미널에서 사용해야 한다.예시 : hello.txt 제거
$ unlink hello.txt
$ rm hello.txt
y
를 입력하면 제거가 된다. n
을 입력하면 제거가 안된다.예시 : 쓰기 보호된 hello.txt 제거
$ chmod a-w ex.txt $ rm ex.txt (Output) rm: remove write-protected regular empty file 'ex.txt'? (Input) y
unlink
명령어는 사실 C의 STL에 있는 unlink()
라는 함수를 호출하는 것으로, filesystem에서 해당 이름의 file을 제거하는 것일 뿐이다. 이 때문에 다른 process들이 해당 파일을 open 상태로 놔둔 상황이면 그 process들이 해당 file을 close하기 전까지는 존재한다.
(함수 형태로 사용시) unlink
는 위에서 알 수 있듯이 file system과 관련된 함수이기에 우리가 흔히 아는 file 말고 다른 여러 곳에도 적용이 가능하다.
symbolic link에 작용시 : 즉시 제거, open한 process들 사용 불가
socket, FIFO file, device file : file system 상에서 이름은 제거되나 open한 process들은 사용 가능
여러개의 파일을 제거할거면 rm
다음에 해당하는 file 이름들을 띄어쓰기로 집어넣으면 된다.
예시 : ex.txt, ex2.txt, ex3.txt 한번에 제거
$ rm ex.txt ex2.txt ex3.txt
*
)을 사용하면 된다.예시 : root directory의 모든 pdf file 제거
$ rm *.pdf
-i
option을 사용하면 된다. 제거할거면 y
를 입력하면 된다. 제거하지 않을거면 n
을 입력하면 된다.예시 : ex.py를 확인하면서 제거
$ rm -i ex.py (Output) rm: remove regular file 'ex.py'? (Input) y
-f
option을 사용하면 된다.예시 : write-protected ex.txt를 경고 없이 제거
$ chmod a-w ex.txt $ rm -f ex.txt
예시 : verbose mode로 경고 없이 txt 파일들을 전부 제거
$ rm -fv *.txt
흔히 rm
이나 rmdir
명령어를 사용한다. 리눅스 터미널에서 사용해야 한다.
rmdir
은 empty directory만 삭제가 가능하다.
예시 : mydirectory 제거
$ rmdir mydirectory
rm
은 empty directory를 제거하려면 -d
option을 사용하면 된다.예시 : mydirectory 제거
$ rm -d mydirectory
rm
에 -r
option을 사용하면 된다.예시 : mydirectory 제거
$ rm -r mydirectory
y
를 입력하면 제거가 된다.예시 : ex.txt, ex2.txt라는 write-protected file을 보유한 mydirectory 제거
$ rm -r mydirectory (Output) rm: remove write-protected regular empty file 'mydirectory/ex2.txt'? (Input) y (Output) rm: remove write-protected regular empty file 'mydirectory/ex.txt'? (Input) y
-rf
option을 사용하면 된다. -r
option과 -f
option의 조합이다.예시 : ex.txt, ex2.txt라는 write-protected file을 보유한 mydirectory 제거
$rm -rf mydirectory
rm -r
에다가 directory 이름들을 띄어쓰기로 넣으면 된다.예시 : mydir1, mydir2, mydir3 한번에 제거
$rm -r mydir1 mydir2 mydir3
참고 링크