Shell(Bash)编程实例之获取某个文件夹下的所有文件名(含文件夹)

  • Post author:
  • Post category:其他


初学shell,很多不懂,所以将自己在实际中用到的都记录下来,希望高手们多给宝贵意见,谢谢

#!/bin/sh
#============ get the file name ===========
Folder_A="/home/youname/shell/gotfilename/bin"
for file_a in ${Folder_A}/*; do
    temp_file=`basename $file_a`
    echo $temp_file
done    


如果要输出到一个文件的话也可以重定向到一个文件中去

修改为:

#!/bin/sh
#============ get the file name ===========
Folder_A="/home/Neo/shell/gotfilename/bin"
Output_file="output.txt"
#这里用于清空原本的输出文件,感觉 : 这个符号用处挺大,shell的学习还是要多用才是
: > $Output_file                                                                                                                                          
for file_a in ${Folder_A}/*; do
    temp_file=`basename $file_a`
    echo $temp_file >> $Output_file
done
#!/bin/sh
#============ get the file name ===========
echo -e "请输入你要读取的文件夹路径\n当前路径为${PWD}"
read InputDir
echo "你输入的文件夹路径为${InputDir}"
echo -e "请输入你要将数据输出保存的文件路径n当前路径为${PWD}"
read OutputFile  
echo "输出保存的文件路径为${OutputFile}"
: > $OutputFile   #清空OutputFile
#循环读取文件夹名
for file_a in ${InputDir}/*; do
    temp_file=`basename $file_a`
    echo $temp_file >> $OutputFile
done


Shell 脚本获取当前目录 和 获得 文件夹名

#!/bin/bash

project_path=$(cd `dirname $0`; pwd)
project_name="${project_path##*/}"
echo $project_path
echo $project_name

#:表示从左开始算起,并且截取第一个匹配的字符

##:表示从左开始算起,并且截取最后一个匹配的字符

%:表示从右开始算起,并且截取第一个匹配的字符

%%:表示从右开始算起,并且截取最后一个匹配的字符