이 파일들을....!
옮겨야 하는데 너무 많아서,
특정 문자열을 포함한 파일을 검색해서 복사하는 방법을 알아보았습니다.
특정 문자열을 포함하는 파일을 검색해서 특정 폴더로 이동
$sudo find . -name "문자열*" -exec mv {} 폴더경로 \예시)
"train_" 문자열로 시작하는 파일 검색해서 train 이라는 폴더로 이동하는 방법
$sudo find . -name "train_*" -exec mv {} /train \복사는 mv를 cp로 변경하면됩니다~
March 21, 2019/in 리눅스/
리눅스에서 파일을 다른 디렉토리로 이동하거나 다른 이름으로 바꾸고자 할 때 mv 를 사용하면 된다 <기본문법> 경로가 동일하면 rename 이 되고 경로가 다르면 파일이 이동된다.리눅스 mv – 이동/이름변경 명령어
mv [옵션] <file1> <file2> <file3> ….<file n> destinationmv [옵션] 원본디렉토리 옮길디렉토리
옵 션
기 능
-b
파일이 지워지기전에 백업파일 만듬
-f
대상파일이 있더라도 파일을 강제로 삭제
-i
대상파일이 있는 경우 덮어쓸 것인가 물어 봄
-r
서브 디렉토리 내에 있는 모든 파일까지 통채로 복사
-u
대상파일보다 원본파일이 새로운 것일 때
-v
파일 옮기기 전의 과정을 보여줌
여러개의 파일을 동시에 옮기는 방법
mv filename* /home/test
해석 : 현재 디렉토리의 filename으로 시작하는 모든 파일을 /home/test 로 옮긴다.
위 그림에서 현재 디렉토리를 확인(pwd)하고 ls 명령어로 어떤 파일과 서브디렉토리가 있는지 확인하고 나서,
mv *.php /home/http/test 로 현재디렉토리(/home/http/test/modules/plan/)에 있는 모든 php 파일을
/home/http/test 디렉토리로 옮기라고 명령했다.
모든 PHP 파일이 옮겨진 것을 확인할 수 있다.
_m* 으로 시작되는 파일을 하위디렉토리 modules/plan/ 으로 옮기라는 것을 실행해보고
경로를 이동하여 실제로 파일이 옮겨진 것을 확인할 수 있다.
mv /home/test/ab* /root/test
해석 : /home/test/ 디렉토리에 존재하는 ab로 시작하는 모든 파일을 /root/test 디렉토리로 옮긴다.
위 그림에서 보면 디렉토리가 존재하지 않는 곳으로 파일을 옮기려고 했더니 디렉토리가 없다고 출력한다.
그래서 디렉토리가 존재하는 /root 로 파일을 옮기고 나서 확인했다.
파일이 옮겨진 것을 확인할 수 있다. (보안상 보여주면 안되는 사항은 검은색으로 처리함)
mv /home/http/test /home/http/test2
해석 : /home/http/test/ 디렉토리 자체를 /home/http/test2/ 디렉토리로 옮긴다.
파일을 디렉토리째로 다른 것으로 복사하려면 mv 처럼 뒤에 옵션을 붙이지 않는게 아니라 옵션을 붙여야 디렉토리째 복사가 된다.
현재 디렉토리 하위 디렉토리(plan/)의 전부를 /home/http/test/ 디렉토리로 옮겨봤다.
옮기고 나서 경로를 이동하여 옮겨진 것을 확인했다.
리눅스명령어 tar 정복하기
최근포스트
- php 이미지 사이즈 줄인 후 업로드 December 19, 2022
- PHP 폴더를 통채로 압축해서 다운로드 받기 December 14, 2022
- [PHP] 숫자 앞에 0을 넣고 싶을 때 팁 December 9, 2022
- PHP 디렉토리 안 모든 파일 삭제, 특정 확장자 파일 삭제, 특정 확장자 제외 파일 삭제 November 1, 2022
- 성경 장별 요약 및 66권의 주제 June 1, 2022
mv
mv의 뜻은 move의 줄임말로 파일이나 디렉토리를 이동 시킬때 사용하는 명령어입니다.
mv [옵션][이동 할 파일][이동 될 위치] 현재 디렉토리에 있는 test.txt 파일을 디렉토리 내부의 new_folder 디렉토리로 이동 ex) mv test.txt new_folder 현재 디렉토리에 있는 test.txt 파일을 new_test.txt라는 파일로 이름 바꾸기 ex) mv test.txt new_test.txt /user/jtaewu 경로의 test.txt 파일을 /user/jtaewu 디렉토리로 이동 ex) mv test.txt /user/jtaewu/new_folder /user/jtaewu 경로 test.txt 파일을 /user/guest 디렉토리에 new.txt로 바꾸어 이동 ex) mv /user/jtaewu/test.txt /user/guest/new.txt- mv 명령어의 옵션을 제외한 인자 값은 생략이 불가능합니다.
- 경로를 지정하지 않으면 현 위치를 Defualt로 합니다.
- 이동 시킬 때 새로운 이름을 지정하여 이동 할 수 있습니다.
- 현재위치에 이름만 바꿔서 이동시켜 파일의 이름바꾸기로 응용할 수 있습니다.
- 다양한 옵션을 사용하여 기존의 파일이나 디렉토리를 보호하는 등의 행동을 취할 수 있습니다.
자주 사용하는 옵션
- -b : 이동될 파일이 존재하면 백업파일을 만듦
- -i : 이동될 파일이 이름이 이미 존재할 경우, 사용자에게 덮어 쓰기 여부를 묻습니다.
- -b : 이동될 파일이 이름이 이미 존재할 경우, 백업파일을 생성합니다.
- -f :이동 될 파일이 이름이 이미 존재 할 경우, 강제로 덮어쓰기 합니다.
- -n :이동 될 파일이 이름이 이미 존재 할 경우, 덮어쓰기를 하지 않습니다.
- -r : 하위 디렉토리 까지 모두 이동합니다.
- -v : 이동 진행 상태를 출력합니다.
여러개를 한번에 이동시키고 싶을 때
mv [이동 대상1] [이동 대상2] [이동 대상3] ..... [이동 할 경로] ex) mv test1.txt test2.txt test3.txt /user/jtaewu 현재 위치의 모든 파일 이동 mv * [이동 할 경로] ex) : mv -r * /user/jtaewu위와 같이 한번의 명령어로 여러개의 파일을 이동 시킬 수 있고 * 을 활용하여 디렉토리 안에 있는 파일들을 한번에 이동시킬 수도 있습니다. 단 * 로 복사하였을 경우 숨김 파일들은 이동이 안됩니다. 디렉토리를 이동시킬때는 하위 디렉토리까지 모두 이동해야하는 경우에 -r 옵션을 유용하게 사용 할 수 있습니다.