使用空格将tar文件压缩到tar文件夹

Neu*_*ise 2 bash tar

我正在尝试制作一个bash脚本,它将逐个递归地tar所有文件夹.

但是,我有一个问题,因为一些文件夹名称有空格等.所以它无法正常工作.

是)我有的:

#!/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for i in $(ls ./2011)
do
    tar -zcvf "$i".tar.gz "$i"
done
IFS=$SAVEIFS
Run Code Online (Sandbox Code Playgroud)

然而,例如出现问题:

tar -zcvf St Patricks Day Bar Night.tar.gz St Patricks Day Bar Night
Run Code Online (Sandbox Code Playgroud)

空间会引起问题,这有什么好办法?

Mu *_*iao 7

在文件名和bash文件名扩展名周围使用双引号而不是ls.

#!/bin/bash
for i in ./*
do
    echo tar -zcvf "$i.tar.gz" "$i"
done
Run Code Online (Sandbox Code Playgroud)