tar怎么能压缩的时候不包括大于1M的文件?
时间: 2024-05-08 20:21:07 浏览: 58
可以使用`find`命令来找到大小小于等于1M的文件,然后将其作为tar命令的输入,压缩时就不会包括大于1M的文件。具体命令如下:
```bash
find . -type f -size -1M -print0 | tar -czvf archive.tar.gz --null -T -
```
这个命令会在当前目录下找到大小小于等于1M的文件,将它们使用null字符分割后作为tar命令的输入,压缩时不包括大于1M的文件。其中`-print0`选项可以使用null字符分割文件名,`--null`选项可以让tar命令使用null字符分割输入文件名,`-T -`选项则表示从标准输入读取输入文件名。
相关问题
打包etc目录下所有大于1M的文件
可以使用以下命令来打包etc目录下所有大于1M的文件:
```
find /etc -type f -size +1M -exec tar -cvzf etc_files.tar.gz {} +
```
这个命令会使用`find`命令来查找/etc目录下所有大于1M的文件,并将它们添加到一个名为`etc_files.tar.gz`的压缩文件中。`-type f`选项指定查找的是文件,而`-size +1M`选项指定查找大于1M的文件。`-exec`选项指定执行`tar`命令来打包文件,并且`{}`表示找到的每个文件。`+`选项表示多个文件一起传递给`tar`命令,而不是一个个传递。最后,`-cvzf`选项表示创建一个压缩文件,`c`表示创建,`v`表示显示进度,`z`表示使用gzip压缩,`f`表示指定文件名。
在虚拟机centos7系统中,用linux命令打出以下问题: 1.查找/tmp目录下的所有文件以长列的形式逆序打印,并且完成占用内存空间最大文件的文件类型判断。 2.请一次性在用户目录下新建分别以学号和姓名的拼音开头的目录文件,并以递归方式列出验证 3.在根目录下建立第一级为home,第二级为学号,第三级为姓名的嵌套目录(创建为一次性创建),并递归验证。 4.在etc下查找大于1M的普通文件同时复制到tmp下;新建根下test1目录且在里面添加aa1目录,在aa1目录下一次性建立三个file文件,将aa1里面的文件第一个以当前日期2天前,第二个当前日期2天内。第三个当前日期的前第二天,cp到tmp下并验证;将etc、tmp、aa1同时压缩到home下,且在home下指定解压到新建目录testt下。
1. 查找/tmp目录下的所有文件以长列的形式逆序打印,并且完成占用内存空间最大文件的文件类型判断。
```
ls -lSr /tmp | awk '{ print } END { print "The largest file type is: " $1 }' | tac
```
2. 请一次性在用户目录下新建分别以学号和姓名的拼音开头的目录文件,并以递归方式列出验证
```
mkdir -p ~/zhangsanming
mkdir -p ~/123456zhangsan
ls -R ~
```
3. 在根目录下建立第一级为home,第二级为学号,第三级为姓名的嵌套目录(创建为一次性创建),并递归验证。
```
sudo mkdir -p /home/123456zhangsan/zhangsanming
sudo chown -R $USER:$USER /home
ls -R /home
```
4. 在etc下查找大于1M的普通文件同时复制到tmp下;新建根下test1目录且在里面添加aa1目录,在aa1目录下一次性建立三个file文件,将aa1里面的文件第一个以当前日期2天前,第二个当前日期2天内。第三个当前日期的前第二天,cp到tmp下并验证;将etc、tmp、aa1同时压缩到home下,且在home下指定解压到新建目录testt下。
```
sudo find /etc -type f -size +1M -exec cp {} /tmp \;
sudo mkdir -p /test1/aa1
cd /test1/aa1
touch file1
touch file2
touch file3
cp -p file1 /tmp/$(date -d "2 days ago" +%Y%m%d)_file1
cp -p file2 /tmp/$(date +%Y%m%d)_file2
cp -p file3 /tmp/$(date -d "2 days ago -1 day" +%Y%m%d)_file3
cd /
sudo tar -czvf /home/archive.tar.gz /etc /tmp /test1/aa1
sudo mkdir /home/testt
sudo tar -xzvf /home/archive.tar.gz -C /home/testt
```