본문 바로가기
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
2018.08.26 00:03

리눅스 파일명 변경

조회 수 386

find와 grep을 이용해서 특정 디렉토리와 그 하위 디렉토리에서 특정 문자열이 포함된 파일을 찾을 수 있다. find 명령에 -type f 옵션으로 파일을 출력한 후 grep으로 찾으면 되겠다. 검색 범위는 지정한 디렉토리와 그 하위 디렉토리가 된다. 

 

현재 디렉토리와 그 하위 디렉토리에서 myfile이라는 문자열이 포함된 파일을 찾으려면

find ./ -type f | grep "myfile"

 

/etc 디렉토리에서 찾으려면

find /etc -type f | grep "myfile"

 

그렇게 찾은 파일을 rm 명령으로 지우고 싶으면

find /etc -type f | grep "myfile" | xargs rm

 

또는 역따옴표(`)를 이용해서

rm `find /etc -type f | grep "myfile"`

 

디렉토리를 찾고 싶으면 -type d라고 지정하면 된다. 

find ./ -type d

출처:[bash: find] 파일 찾기

http://bahndal.egloos.com/363294

 

 

 

우선, 파일 또는 디렉토리 하나의 이름을 바꾸고 싶으면 mv 명령을 이용하자. 아래의 예시를 보면 되겠다.

 

# 이름 변경: my_text.txt -> old_text.txt

mv my_text.txt old_text.txt

 

여러개의 파일이나 디렉토리에 대해 한꺼번에 이름을 바꾸고 싶다면 rename 명령을 이용하면 되겠다. 아래의 예시는 확장자가 txt인 파일에서 abc를 def로 바꾸는 경우이다.

 

# 확장자가 txt인 파일에서 abc를 def로 변경

rename 's/abc/def/' *.txt

 

만약 파일명이 abcd.txt라면 defd.txt로 바뀌게 된다.

 

만약 파일명이 abc_abc.txt라면 어떻게 될까? 처음 abc만 def로 바뀐다. 즉, def_abc.txt로 바뀐다. 같은 문자열이 반복될 경우 모두 바꾸고 싶다면, 즉 위의 예시에서 abc_abc.txt를 def_def.txt로 바꾸고 싶다면 아래와 같이 g 옵션을 쓰면 된다.

 

rename 's/abc/def/g' *.txt

 

-n 옵션을 사용하면 실제로 이름을 바꾸지는 않고, 어느 파일/디렉토리가 어떤 이름으로 바뀔 것인지만 화면에 출력해 준다. 실제로 바꾸면서 결과를 출력하고 싶으면 -v 옵션을 사용하자.

 

# 이름이 바뀔 파일과 바뀌게 될 결과만 출력(실제로 바꾸진 않음)

rename -n 's/abc/def/' *.txt

 

# 실제로 이름을 바꾸고, 바뀐 결과를 화면에 출력

rename -v 's/abc/def/' *.txt

 

find 명령과 xargs 명령을 조합해서 사용해도 편리하다. (find와 xargs 명령은 이전 게시물을 참고하자)

 

# abc가 포함된 디렉토리(-type d)를 찾아서 def로 변경

find -type d | grep abc | xargs rename 's/abc/def/'

 

출처:[bash: mv, rename] 파일/디렉토리 이름 바꾸기 (한개 또는 여러개 한꺼번에)

http://bahndal.egloos.com/468623

 

  1. No Image

    리눅스 파일명 변경

    find와 grep을 이용해서 특정 디렉토리와 그 하위 디렉토리에서 특정 문자열이 포함된 파일을 찾을 수 있다. find 명령에 -type f 옵션으로 파일을 출력한 후 grep으로 찾으면 되겠다. 검색 범위는 지정한 디렉토리와 그 하위 디렉토리가 된다. 현재 디렉토리...
    Date2018.08.26 Category리눅스 Views386
    Read More
  2. 리눅스 find 명령어 캡쳐

    stty -a 하면 정의된 문자를 볼 수 있습니다. intr : 인터럽트 : 대부분 Ctrl-C quit : 강제종료 : Ctrl-\ erase : 문자지우기 : Ctrl-H kill : 입력 라인 전체 지우기 : Ctrk-U eof : end of file : ctrl-D start : 터미널 출력 : Ctrl-Q stop : 터미널 출력...
    Date2017.01.16 Category리눅스 Views65
    Read More
  3. No Image

    리눅스 방화벽 관리

    방화벽 실행 여부 확인firewall-cmd --state실행 중이면 running, 실행 중이 아니면 not running을 출력합니다. 방화벽 다시 로드firewall-cmd --reload방화벽 설정 후 다시 로드해야 적용됩니다. 존(Zone) 출력하기firewall-cmd --get-zones존(zone) 목록을 ...
    Date2017.01.13 Category리눅스 Views175
    Read More
  4. No Image

    리눅스 CentOS Samba 설정

    CentOS Samba 설정   1.터미널 su 명령 root 전환 2.삼버 설치 yum -y install samba   ※공유폴더명 /xtrm_smb 3.폴더생성 mkdir /xtrm_smb 4.퍼미션설정 chmod 777 /xtrm_smb 5.설정파일 편집 vi /etc/samba/smb.conf   또는   gedit /etc/samba/smb.conf wor...
    Date2017.01.13 Category리눅스 Views227
    Read More
  5. No Image

    리눅스 기본명령어

    퍼미션(권한)이란? Owner Group Other Owner와 Group은 파일소유자자신과 자신이 속한그룹. Other은 제3자, 웹사이트 방문객은 제3자로 nobody로 취급. r w x r w ...
    Date2017.01.13 Category리눅스 Views1235
    Read More
Board Pagination Prev 1 Next
/ 1