我使用以下命令将文件夹中的每个文件单独压缩:
for file in *; do gzip "$file"; done
但它会保留原始文件。我想知道是否有一种方法可以在成功压缩后自动删除这些文件。
谢谢。
给@Tim Pote加一分,因为他的猜测很有可能是问题的原因。
但是请小心处理文件时的for
循环,如果文件名包含空格,则会被视为两个不同的文件名。您可以通过以下方式使用find
来避免这种情况:
find . -maxdepth 1 -type f ! -name '*.gz' -exec gzip "{}" \;
这个命令可以在当前目录中找到所有未被压缩的普通文件,然后对每一个文件进行单独压缩,使用的工具是gzip
。花括号({}
)会被替换为文件名,双引号则确保空格被正确处理。
find . -maxdepth 1 -type f ! -name '*.gz' | while read file; do
gzip "$file"
done