ubuntu批量解压文件指令汇总

  • 1、批量解压压缩包文件
    • 方法一:xargs传参
    • 方法二:for循环
    • python代码实现批量解压文件
  • 2、解压单个压缩包
  • 3、删除指定后缀文件
  • 4、一个文件夹移动到另一个文件夹
    • 4.1 将A目录下的文件夹移动到B目录下(包含A文件夹本身)
    • 4.2 将A目录下的文件夹移动到B目录下(不包含A文件夹本身)
  • 5、常用解压与压缩命令
    • 5.1 tar 文件
    • 5.2 gz文件
    • 5.3 .tar.gz文件、 .tgz文件
    • 5.4 .zip文件
    • 5.5 .rar文件

1、批量解压压缩包文件

方法一:xargs传参

ls *.tar | xargs -n1 tar xvf# tarls *.tar.gz | xargs -n1 tar xzvf#tar.gzls *.tar.gz | xargs -n1 unzip -o#zip

方法二:for循环

for tar in *.tar;do tar xvf $tar; done # tarfor tar in *.tar.gz;do tar xzvf $tar; done #tar.gzfor tar in *.zip;do unzip $tar; done #zip

python代码实现批量解压文件

针对每个zip压缩包本身没有文件夹的情况,解压时会根据压缩包的名称来创建新的文件夹来存放解压后的文件

import osimport zipfile# 压缩文件所在目录zip_anno_path = '/media/qy/my_passport/**/SOTdataset/VOT2020/annotations'zip_data_path = '/media/qy/my_passport/**/SOTdataset/VOT2020/data'# 解压后的目录# 解压annodir_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_pathdir_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)

2、解压单个压缩包

tar xvf FileName.tar#tartar -jxvf gcc-4.8.2.tar.bz2 #tar.gz.bz2tar zxvf FileName.tar.gz #tar.gz 或者 tar -xvf FileName.tar.gzunzip FileName.zip #zip

3、删除指定后缀文件

rm *.zip #批量删除.zip的文件rm -rf * #删除所有文件夹,但无法恢复

4、一个文件夹移动到另一个文件夹

4.1 将A目录下的文件夹移动到B目录下(包含A文件夹本身)

sudo mv /home/ubuntu/A/ /home/ubuntu/B/ 

4.2 将A目录下的文件夹移动到B目录下(不包含A文件夹本身)

sudo mv /home/ubuntu/A/* /home/ubuntu/B/ 

5、常用解压与压缩命令

.tar是打包.tar.gz是压缩过的文件.tar.gz常见于unix系统,在ubuntu或macos可以直接解压,.zip常见于windows系统

5.1 tar 文件

# 仅打包,并非压缩tar -xvf FileName.tar # 解包tar -cvf FileName.tar DirName # 将DirName和其下所有文件(夹)打包

5.2 gz文件

# .gzgunzip FileName.gz# 解压1gzip -d FileName.gz # 解压2gzip FileName # 压缩,只能压缩文件

5.3 .tar.gz文件、 .tgz文件

# .tar.gz 和 .tgztar -zxvf FileName.tar.gz # 解压tar -zcvf FileName.tar.gz DirName # 将DirName和其下所有文件(夹)压缩tar -C DesDirName -zxvf FileName.tar.gz # 解压到目标路径

5.4 .zip文件

# 感觉.zip占用空间比.tar.gz大unzip FileName.zip# 解压zip FileName.zip DirName# 将DirName本身压缩zip -r FileName.zip DirName # 压缩,递归处理,将指定目录下的所有文件和子目录一并压缩

5.5 .rar文件

rar x FileName.rar# 解压rar a FileName.rar DirName # 压缩