파일을 압축하는 스크립트를 작성 중입니다.
파일을 압축하고 동일한 이름의 파일을 생성하고 이것을 압축하려고 시도 할 수도 있습니다. 예 :
$ ls -l archive/
total 4
-rw-r--r-- 1 xyzzy xyzzy 0 Apr 16 11:29 foo
-rw-r--r-- 1 xyzzy xyzzy 24 Apr 16 11:29 foo.gz
$ gzip archive/foo
gzip: archive/foo.gz already exists; do you wish to overwrite (y or n)? n
not overwritten
를 사용 gzip --force
하면 gzip을 덮어 쓸 수 foo.gz
있지만이 경우 덮어 쓰면 데이터가 손실 될 가능성이 높다고 생각합니다 foo.gz
. .gz
프롬프트에서 'n'을 누르는 비 대화식 버전 인 gzip이 파일 을 그대로 두도록 명령 행 스위치가없는 것 같습니다 .
나는 시도 gzip --noforce
하고 gzip --no-force
있지만, 어느 일이 중, 이것들은 GNU 옵션 표준에 따라 수 있다는 희망.
이에 대한 직접적인 해결 방법이 있습니까?
편집하다:
이것은 맨 페이지가 아닌 정보 페이지를 읽는 데 지불하는 시간 중 하나입니다.
정보 페이지에서 :
`--force'
`-f'
Force compression or decompression even if the file has multiple
links or the corresponding file already exists, or if the
compressed data is read from or written to a terminal. If the
input data is not in a format recognized by `gzip', and if the
option `--stdout' is also given, copy the input data without
change to the standard output: let `zcat' behave as `cat'. If
`-f' is not given, and when not running in the background, `gzip'
prompts to verify whether an existing file should be overwritten.
맨 페이지에 텍스트 가없고 백그라운드에서 실행되지 않을 때
백그라운드에서 실행될 때 gzip은 프롬프트를 표시하지 않으며 -f
옵션이 호출 되지 않으면 덮어 쓰지 않습니다 .
find ./ ! -name "*gz" -exec gzip {} \; &
같이 작동합니다.find ./ ! -name "*gz" -print0 | xargs -0 -n 1 -t gzip
gzip 보고서 :gzip: ./2012-July.txt.gz already exists; not overwritten