tar 압축시 공백이 들어간 파일압축문의

cdral의 이미지

명령어 조합으로 파일명만 출력되게 하였습니다.
file1_20100802.pdf
file2_20100802.xls
file3_20100802_aaaa_bbb.pdf
file4 20100802 8월 2일.jpg
file5_20100802 ccc ddd.ppt

이런형태의 파일리스트인데요 이것을 tar 로 묶을려고하면
file1_20100802.pdf
file2_20100802.xls
file3_20100802_aaaa_bbb.pdf
3개의 파일까지는 잘묶이지만 그이후부터 공백이 들어간 파일은 백업이 되지않더군요
발생하는 에러는
file4 파일을 찾을수없음 20100802 파일을 찾을수없음... 이런식으로 공백을 기준으로
파일의 시작과 끝을 구분하는것 같습니다.

실제로 공백이 들어간 파일은 file4\ 20100802\ 8월\ 2일 이런형태이기 때문인것 같습니다.
근데 출력된 리스트에서는 file4 20100802 8월 2일 이걸 tar로 묶을려고 하니 에러가 발생하는것 같은데요

이걸 어떻게 처리해야 좋을까요 파일에 들어간 공백에 규칙은 없습니다,,

송효진의 이미지

명령어조합 | sed -e 's/^\|$/"/g'

따옴표하세요.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇 개 안돼요~
http://xenosi.de/

cdral의 이미지

따움표를 사용해서 콘솔창에 직접 입력해보면 잘되는데

파일리스트를 FILE이란 변수에 담아둔상태입니다.
tar cvfpz aa.tgz $FILE 로 백업을 받게되어있는데요

FILE변수에 담긴 값은 아래와 같습니다.
"file1_20100802.pdf"
"file2_20100802.xls"
"file3_20100802_aaaa_bbb.pdf"
"file4 20100802 8월 2일.jpg"
"file5_20100802 ccc ddd.ppt"

예로
for i in $FILE; do
cp -a $i /home/backup
done

근데 에러가 뜹니다.
해당경로/파일명 : 그런파일이나 디렉토리가 없음에러가 발생하며
또한 따움표로 묶어도 공백을 기준으로 파일의 끝을 구분짓는것 같습니다.

tj의 이미지

cp -a "$i" ..

cdral의 이미지

마찬가지로 안됩니다. 파일리스트를 file.txt로 따로 저장한후에
한라인씩 불러와서 스크립트에 적용시킬려면 어떻게 해야할까요

pogusm의 이미지

저는 centos5.5 환경인데요

# tar cvfpz aa.tgz "file4 20100802 8월 2일.jpg" "file5_20100802 ccc ddd.ppt" "file2_20100802.xls"
또는
# tar cvfpz aa.tgz *

모두 전혀 문제 없이 작동하는데요..

혹시 모르니... 해당 파일들을 임의의 디릭토리에 위치시킨후
# tar cvfpz aa.tgz test_dir/
위처럼 시도해보세요

cdral의 이미지

예 그렇게 지정하면 저도 됩니다.

그렇지만 명령어 조합은 이렇게하고
FILE=`ls -al | grep file* | sed -e 's/^\|$/"/g`

FILE변수에 담긴 값은 아래와 같겟죠..
"file1_20100802.pdf"
"file2_20100802.xls"
"file3_20100802_aaaa_bbb.pdf"
"file4 20100802 8월 2일.jpg"
"file5_20100802 ccc ddd.ppt"

이를 아래와같이 실행이되면
tar cvfpz aa.tgz $FILE
file4 부터 공백으로 인해 에러가 발생하더라구요

디렉토리를 통째로 백업하기에는 무리가있습니다.
용량이 80G가 넘어서 날짜별로 부분백업후 삭제를 하려했습니다.

pogusm의 이미지

1. 날짜별로 부분빽업하기(파일명에날짜가포함된경우)
# tar cfpvz test.tgz *20100802*

2. 파일리스트를 이용하여 압축하기
# ls | grep file > list
# cat list
file1_20100802.pdf
file2_20100802.xls
file3_20100802_aaaa_bbb.pdf
file4 20100802 8월 2일.jpg
file5_20100802 ccc ddd.pp
# tar cfpvz aa.tgz --files-from list
# tar tvf aa.tgz