linux中编写一个shell脚本,罗列当前路径下所有以f开头的文件名(注意:不包括文件夹),假设脚本名为countf.sh,那么运行countf.sh脚本后,终端按行输出f开头的文件的文件名
时间: 2024-05-02 11:20:36 浏览: 121
您好,这个问题可以用以下脚本实现:
```
#!/bin/bash
for file in f*
do
if [ -f "$file" ]
then
echo "$file"
fi
done
```
您可以将这个脚本保存为countf.sh,并在终端中运行它。运行后,脚本会按行输出当前路径下所有以f开头的文件的文件名。注意,在该路径下如果有文件夹也会被输出,如果需要排除文件夹,可以在判断文件时加上`-d`选项。
相关问题
编写一个 shell 脚本,罗列当前路径下所有以f开头的文件名(注意:不包 括文件夹
)。
好的,这是一个简单的问题,以下是脚本代码:
```bash
#!/bin/bash
for file in $(ls f*)
do
if [ -f "$file" ]; then
echo "$file"
fi
done
```
这个脚本将列出当前路径下所有以字母"f"开头的文件名。
写一个shell脚本找到当前路径下的所有.png文件名改成与存放其的父级目录一致
你可以创建一个简单的Shell脚本来完成这个任务。这里有一个基础示例,它会遍历当前目录及其子目录,查找所有的`.png`文件,并将它们的名称修改为其所在父目录的名字加上原始文件名。假设我们已经在一个目录结构中,比如:
```
/path/to/current/directory/
image1.png
subdirectory/
image2.png
```
你可以使用以下bash脚本:
```bash
#!/bin/bash
# 定义当前工作目录
current_dir=$(pwd)
# 遍历当前目录和子目录
for file in "$current_dir"/*/*.png; do
# 获取文件完整路径和父目录名字
full_path=$file
parent_dir=$(dirname "$full_path" | awk -F"/" '{print $1}')
# 如果文件不在顶级目录,更改文件名
if [ "${parent_dir}" != "." ]; then
new_name="${parent_dir}/${basename($file)}"
mv "$full_path" "$new_name"
fi
done
阅读全文