在/home目录里,用find命令定位文件所有者是yangyun用户的文件,然后将其打包到/tmp/backup.tar。
时间: 2024-09-17 18:06:01 浏览: 41
在Linux系统中,你可以使用`find`命令配合`tar`命令来实现这个需求。首先,使用`find`查找"/home"目录下所有属于用户"yangyun"的所有文件,然后将找到的文件添加到一个`.tar`归档文件中。以下是相应的命令:
```sh
find /home -user yangyun -type f -print0 | tar -czvf /tmp/backup.tar --null -T -
```
解释一下各个部分:
1. `find /home`: 从/home目录开始搜索。
2. `-user yangyun`: 指定文件的所有者为"yangyun".
3. `-type f`: 只查找普通文件(不包括目录或其他类型的文件)。
4. `-print0`: 打印文件名时用空字符(而不是换行符)作为分隔,因为`tar`需要零字节分隔文件名列表。
5. `|`: 将`find`的结果管道给`tar`。
6. `tar -czvf /tmp/backup.tar`: 创建一个新的.tar归档文件,`c`表示创建新档案,`z`启用压缩(通常是gzip),`v`详细模式显示操作过程。
7. `--null -T -`: `--null`表示输入文件名列表使用零字节分隔,`-`代表标准输入,用于接收来自`find`的文件名。
运行此命令后,你将在`/tmp`目录下生成一个名为`backup.tar.gz`的压缩文件,包含了所有"yangyun"用户在/home目录下的文件。
相关问题
在/home目录里,用find命令定位文件所有者是yangyun用户的文件,然后将其打包到/tmp/backup.tar
在Linux系统中,你可以使用`find`命令结合`tar`命令来实现这个需求。首先,找到"/home"目录下所有属于用户"yangyun"的所有文件,然后将它们打包到"/tmp/backup.tar"文件中。以下是相应的命令:
```sh
sudo find /home -type f -user yangyun | tar -czf /tmp/backup.tar -
```
这里解释一下各个部分的意思:
- `sudo`:你需要管理员权限才能访问其他用户的文件,所以需要加上此命令。
- `find /home`: 从"/home"目录开始查找。
- `-type f`: 只搜索文件,不包括目录或其他类型的文件。
- `-user yangyun`: 筛选出文件所有者为"yangyun"的文件。
- `|`: 将`find`的结果作为输入传递给下一个命令。
- `tar`: 使用`tar`命令创建归档文件。
- `-c`: 创建新的归档文件。
- `-z`: 添加压缩选项,使用gzip压缩。
- `-f /tmp/backup.tar`: 指定输出归档文件的路径为"/tmp/backup.tar"。
- `-`: 表示标准输入(stdin),即来自`find`命令的输出。
执行完这个命令后,你将在"/tmp"目录下看到名为"backup.tar.gz"(因为`tar`默认会添加`.gz`扩展名)的压缩文件,其中包含了"yangyun"用户在"/home"下的所有文件。
阅读全文