ฉันกำลังเขียนสคริปต์ที่ฉันกำลัง gzipping ไฟล์
มีความเป็นไปได้ที่ฉันอาจ zip ไฟล์สร้างไฟล์ที่มีชื่อเดียวกันและลอง gzip นี้เช่นกัน
$ 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