Do diffence

[Unix] mv 명령 본문

Tech Tips

[Unix] mv 명령

고포릿 2011. 2. 1. 02:35
1. 파일 이름 변경
mv로 해당 파일을 이동, 이름 변경을 해도 해당 파일의 inode는 변함이 없다.
cd /tmp
touch test.txt
$ ls -i test.txt
2097274 test.txt
$ mv test.txt test_1.txt
$ ls -i *.txt
2097274 test_1.txt

2. 디렉토리 이름 변경
디렉토리 이름도 마찬가지로 inode 값이 변경되지 않는다.
/tmp$ mkdir dir1
/tmp$ ls -ild dir1
2097275 dir1
/tmp$ mv dir1 dir2
/tmp$ ls -ild dir2
2097275 dir2

3. 프롬프트로 묻기
-i 옵션을 사용하면 명령 실행전에 프롬프트로 묻는다.
$ mv -i test.txt test_1.txt

mv: overwrite `test_1.txt'?
만약 덮어쓰려는 파일의 퍼미션이 다르면 아래와 같이 묻늗다.

$ mv -i test.txt test_1.txt

mv: `test_1.txt'를 overriding mode 0555 (r-xr-xr-x)로 덮어쓰기를 시도할까요?



4. 여러 파일을 특정 디렉토리로 옮기기.
mv *.xml ../xml




5. 덮어 쓰기 전에 백업하기

--suffix 옵션을 사용하면 덮어 쓰기 전에 해당 파일의 확장자를 suffix로 주어 백업할 수 있다.


$ mv --suffix=.bak test.txt test_1.txt

$ ls -l

-rw-r--r-- 1 gtko gtko 0 2011-02-01 02:26 test_1.txt

-rw-r--r-- 1 gtko gtko 0 2011-02-01 02:20 test_1.txt.bak



6. 중복되지 않는 파일만 옮기기.

mv * 를 사용하면 모든 파일을 이동한다. 그런데 이동하는 곳에 없는 파일만 옮기려면 mv -u 옵션을 사용하면 된다.


$ ls dir1

file1 file2 file3

$ ls dir2

file2 file3 file4

$ mv -u dir1/* dir2/

$ ls dir2

file1 file2 file3 file4



7. 디렉토리내의 00.mp3 형식을 a00.mp3 형식으로 모두 변경
for F in *.mp3; do mv $F a$F; done

참조
http://www.thegeekstuff.com/2010/12/mv-command-examples/?utm_source=feedburner&utm_medium=email&utm_campaign=Feed%3A+TheGeekStuff+%28The+Geek+Stuff%29