ls *.tar | xargs -n1 tar xvf # tar
ls *.tar.gz | xargs -n1 tar xzvf #tar.gz
ls *.tar.gz | xargs -n1 unzip -o #zip
for tar in *.tar; do tar xvf $tar; done # tar
for tar in *.tar.gz; do tar xzvf $tar; done #tar.gz
for tar in *.zip; do unzip $tar; done #zip
针对每个zip压缩包本身没有文件夹的情况,解压时会根据压缩包的名称来创建新的文件夹来存放解压后的文件
import os
import zipfile
# 压缩文件所在目录
zip_anno_path = '/media/qy/my_passport/**/SOTdataset/VOT2020/annotations'
zip_data_path = '/media/qy/my_passport/**/SOTdataset/VOT2020/data'
# 解压后的目录
# 解压anno
dir_anno_path = '/media/qy/my_passport/**/SOTdataset/VOT2020-1/anno'
dir_data_path = '/media/qy/my_passport/**/SOTdataset/VOT2020-1/data'
zip_path = zip_data_path
dir_path = dir_data_path
# 遍历目录中所有文件
for file_name in os.listdir(zip_path):
if file_name.endswith('.zip'):
# 拼接压缩文件的完整路径
file_path = os.path.join(zip_path, file_name)
res_dir_path = dir_path +"/" + file_name.split('.')[0]
if not os.path.exists(res_dir_path):
os.makedirs(res_dir_path)
# 打开压缩文件并解压
with zipfile.ZipFile(file_path, 'r') as zip_ref:
zip_ref.extractall(res_dir_path)
tar xvf FileName.tar #tar
tar -jxvf gcc-4.8.2.tar.bz2 #tar.gz.bz2
tar zxvf FileName.tar.gz #tar.gz 或者 tar -xvf FileName.tar.gz
unzip FileName.zip #zip
rm *.zip #批量删除.zip的文件
rm -rf * #删除所有文件夹,但无法恢复
sudo mv /home/ubuntu/A/ /home/ubuntu/B/
sudo mv /home/ubuntu/A/* /home/ubuntu/B/
.tar是打包
.tar.gz是压缩过的文件
.tar.gz常见于unix系统,在ubuntu或macos可以直接解压,
.zip常见于windows系统
# 仅打包,并非压缩
tar -xvf FileName.tar # 解包
tar -cvf FileName.tar DirName # 将DirName和其下所有文件(夹)打包
# .gz
gunzip FileName.gz # 解压1
gzip -d FileName.gz # 解压2
gzip FileName # 压缩,只能压缩文件
# .tar.gz 和 .tgz
tar -zxvf FileName.tar.gz # 解压
tar -zcvf FileName.tar.gz DirName # 将DirName和其下所有文件(夹)压缩
tar -C DesDirName -zxvf FileName.tar.gz # 解压到目标路径
# 感觉.zip占用空间比.tar.gz大
unzip FileName.zip # 解压
zip FileName.zip DirName # 将DirName本身压缩
zip -r FileName.zip DirName # 压缩,递归处理,将指定目录下的所有文件和子目录一并压缩
rar x FileName.rar # 解压
rar a FileName.rar DirName # 压缩