用shell语句遍历键盘输入的目录和子目录所有的文件并把指定格式文件输出
时间: 2024-04-14 13:30:39 浏览: 11
你可以使用以下的shell脚本来遍历键盘输入的目录及其子目录中的所有文件,并将指定格式的文件输出:
```shell
#!/bin/bash
echo "请输入目录路径:"
read directory
echo "请输入要输出的文件格式(例如:.txt):"
read file_format
find "$directory" -type f -name "*$file_format" -print
```
这个脚本首先会要求你输入目录路径,然后要求你输入要输出的文件格式。接下来,它使用`find`命令来查找指定目录及其子目录中符合指定文件格式的文件,并使用`-print`参数将文件路径输出到终端。注意,`$directory`和`$file_format`是变量,会根据你的输入进行替换。
你可以保存这个脚本为一个.sh文件,然后在终端中运行该脚本。输入目录路径和文件格式后,脚本将输出所有符合条件的文件路径。
相关问题
用shell语句遍历访问目录
你可以使用以下的shell语句来遍历访问目录:
```shell
#!/bin/bash
# 设置要遍历的目录
directory="/path/to/directory"
# 遍历目录中的所有文件和子目录
for file in "$directory"/*
do
if [ -d "$file" ]; then
# 如果是目录,则进行递归遍历
echo "目录:$file"
# 递归调用自身,遍历子目录
"$0" "$file"
elif [ -f "$file" ]; then
# 如果是文件,则进行相应操作,例如打印文件名
echo "文件:$file"
fi
done
```
将上述代码保存为一个扩展名为`.sh`的文件(例如`traverse.sh`),然后在终端中运行该脚本即可遍历访问指定目录中的所有文件和子目录。记得将`/path/to/directory`替换为你要遍历的目录路径。
使用含有分支语句的shell脚本将当前目录下的普通文件归档
可以使用如下的shell脚本:
```
#!/bin/bash
# 判断归档目录是否存在,不存在则创建
if [ ! -d "archive" ]; then
mkdir archive
fi
# 遍历当前目录下的所有普通文件,并归档到archive目录
for file in *; do
if [ -f "$file" ]; then
mv "$file" "archive/$file"
fi
done
echo "归档完成"
```
注意:该脚本只会归档当前目录下的普通文件,不会包括子目录中的文件。