shell查询目录中指定名称的文件并打印
时间: 2023-09-08 13:02:12 浏览: 70
在shell中,可以使用find命令查询目录中指定名称的文件,并打印出相应的结果。
find命令的语法如下:
```shell
find 目录路径 -name "文件名"
```
其中,目录路径指的是要查询的目录的路径,可以是绝对路径或相对路径。-name后面跟着需要查询的文件名,可以使用通配符来匹配文件名的模式。
例如,如果要查询目录/home/user/documents/中以.txt结尾的文件并打印,可以使用如下命令:
```shell
find /home/user/documents/ -name "*.txt"
```
上述命令会递归地查询目录/home/user/documents/中所有以.txt结尾的文件,并打印相应的结果。
如果要查询当前目录中以file开头的所有文件,并打印结果,可以使用如下命令:
```shell
find . -name "file*"
```
上述命令会在当前目录中查询所有以file开头的文件,并打印出相应的结果。
需要注意的是,在使用find命令时,要确保需要查询的目录存在并且有相应的权限。如果目录中没有符合条件的文件,将不会打印任何结果。
相关问题
shell 将指定路径目录下所有文件打包 并存在另一个路径下
可以使用 `tar` 命令来将指定路径下的所有文件打包,然后使用 `-C` 参数指定打包后的文件存放路径。
例如,假设要将 `/home/user/docs` 目录下的所有文件打包并存放到 `/home/user/backups` 目录下,可以使用以下命令:
```
tar -czvf /home/user/backups/docs.tar.gz -C /home/user/docs .
```
解释一下各个参数的含义:
- `-c`:表示创建一个新的归档文件;
- `-z`:表示使用 gzip 压缩算法;
- `-v`:表示打印出详细的信息;
- `-f`:表示将归档文件名指定为下一个参数;
- `/home/user/backups/docs.tar.gz`:指定归档文件的名称和路径;
- `-C`:表示在指定的目录下执行命令;
- `/home/user/docs`:指定要打包的目录;
- `.`:表示打包目录下的所有文件。
执行命令后,将在 `/home/user/backups` 目录下生成一个名为 `docs.tar.gz` 的压缩文件,其中包含了 `/home/user/docs` 目录下的所有文件。
awk指定分隔符后打印第一列并把结果写到另一个文件中
要将awk指定分隔符后打印第一列的结果写入另一个文件,可以使用重定向符号 `>` 将输出重定向到另一个文件中。以下是一个示例:
```shell
awk -F 分隔符 '{print $1}' 文件名 > 输出文件名
```
在这个命令中,你需要将 `分隔符` 替换为你想要使用的实际分隔符,`文件名` 替换为输入文件的名称,`输出文件名` 替换为你想要将结果写入的文件名称。
例如,如果你想使用逗号作为分隔符,并将第一列的结果写入一个名为 `output.txt` 的文件中,你可以运行以下命令:
```shell
awk -F ',' '{print $1}' 文件名 > output.txt
```
这将会将指定文件中的每一行按照逗号分隔,然后将第一列的结果写入 `output.txt` 文件中。