van*_*van 5 linux bash gzip shell-script
我正在尝试编写一个 bash 脚本,该脚本将通过 .gz 文件进入目录循环,并在它们为空时将其删除(即包含在 empty.gz 中的未压缩文件)。
我有几个问题:
我试图使用以下代码来实现这一点,但我认为它依赖于文件大小为 0。
for f in dir/*
do
if [[ -s $f ]]
then
do_file_creation
fi
done
Run Code Online (Sandbox Code Playgroud)
不幸的是,gzip 包含原始文件名,因此它的大小会因不同的空文件而异。
gunzip -c $f | head -c1 | wc -c
Run Code Online (Sandbox Code Playgroud)
对于未压缩大小不为零的文件,将回显 1,对于压缩的空文件,将回显 0。
for f in dir/*
do
if [[ $(gunzip -c $f | head -c1 | wc -c) == "0" ]]
then
do_file_creation
fi
done
Run Code Online (Sandbox Code Playgroud)
可以做你想做的吗?