Я пишу сценарій, в якому я gzipping файли.
Існує можливість, що я можу зібрати файл, створити файл з тим самим іменем і спробувати згорнути це, наприклад,
$ 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
. Здається, немає перемикача командного рядка, щоб змусити gzip залишати .gz
файли в спокої ... неінтерактивна версія натискання клавіші "n" у відповідь.
Я спробував 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