2014-04-21 1 views
0

내 리눅스 공간은 100M 밖에 남지 않았고, 나는 100 개의 mp4 파일을 가지고있다. 각각은 같은 폴더에 90M 크기이다. 그들을 하나의 .zip 파일로 압축하려고합니다. zip -9 files.zip *.mp4을 사용하면 공간이 부족하기 때문에 오류가 발생합니다. 같은 폴더에서 mp4 파일을 일괄 삭제 한 후 Linux에서 해당 파일을 지우는 방법은 무엇입니까?

나는 아래의 bash는 스크립트를 시도 :

for f in $(ls *.mp4); do 
    zip files.zip $f 
rm -f $f 
done 

그러나이 말했다 : 나 자신을 해결,

zip error: Nothing to do! (/var/www/test/files.zip) 
    zip warning: name not matched: myvideoname 

좋아,이 작품 :

tar -cvf files.tar *.mp4 --remove-files 
+2

다음은 분기입니다 - 새 하드 드라이브 구입 : – FoggyDay

+3

MP3가 잘 압축되지 않습니다. 그 분기를 가져 가라. –

+0

@FoggyDay 오, 제발, 그건 절대 해결책이 아닙니다. – Phoenix

답변

2

이 작동 내 측면 :

#!/bin/bash 
for f in *.mp4; do 
    zip files.zip "$f" 
done 
+3

그래서'$ (ls * .mp4)'를'* .mp4'로 대체하십시오. 'for $ (ls * .mp4)'에 대한 문제는 공간이 분리 기호 인 문자열의 배열에서'for' 루프라는 것입니다 ('$ (ls * .mp4)'는 ls의 원소를 공백으로 분리하여 더합니다)) 반면에 for f in * .mp4에서는 파일 이름을 반복하며 공백을 포함 할 수 있습니다. – vsoftco

+0

'pack' filename에 저장하고 실행하십시오. 결과'pack : line 5 : 구문 오류 : 예기치 않은 파일 끝 ' – Phoenix

+0

어떤 시스템을 사용하고 있습니까? 나는 bash4를 가지고 있으며, 그대로 작동합니다. – vsoftco

관련 문제