1.语法
#分别打印文件名和后缀名,其中files为整体名称,如:Chrome.exe
echo "filename: ${files%.*}" # Chrome
echo "extension: ${files##*.}" # exe
2.示例代码
模拟场景,打印C盘下folder文件中所有的文件名和后缀名(不包含文件夹)。
#!/bin/bash
function getdir(){
for files in `ls $1`
do
full_path=$1"/"$files
file_path=$1
file_name=$f
#如果是文件夹的话,则文件名和后缀相同,故在此过滤
if [[ -f ${full_path} ]]; then
echo "filename: ${files%.*}"
echo "extension: ${files##*.}"
fi
#如果发现文件夹下还有子文件夹,进行递归遍历
if [[ -d ${full_path} ]]; then
getdir ${full_path}
fi
echo "------split------"
done
}
folder_path="/cygdrive/c/folder"
getdir ${folder_path}
read -n 1
网友评论