当前位置: 技术问答>linux和unix
如何用shell获取linux目录下的文件名呢?
来源: 互联网 发布时间:2016-11-24
本文导语: 遇到一个很繁琐的事情,有两个目录a、b,两个文件夹目录里有一些文件的文件名是一样,不过后缀名不同,我想把a文件夹下跟b文件夹里相同文件名的文件覆盖到b去,并删除b里同名而不同后缀的文件,文件很多,我...
遇到一个很繁琐的事情,有两个目录a、b,两个文件夹目录里有一些文件的文件名是一样,不过后缀名不同,我想把a文件夹下跟b文件夹里相同文件名的文件覆盖到b去,并删除b里同名而不同后缀的文件,文件很多,我想用shell来试写这样一个功能,不过本人刚接触shell,还不清除怎么用shell来获取目录下的文件名来进行操作,所以请教一下大家:)
|
FOLDER_A=a
FOLDER_B=b
for file_a in ${FOLDER_A}/*; do
file_a_prefix=${file_a:%.*}
file_prefix=${file_a_prefix:#${FOLDER_A}/*}
rm -f $FOLDER_B/${file_prefix}.*
cp $file_a $FOLDER_B/
done
看懂再用,胡乱就用俺不对后果负责。
FOLDER_B=b
for file_a in ${FOLDER_A}/*; do
file_a_prefix=${file_a:%.*}
file_prefix=${file_a_prefix:#${FOLDER_A}/*}
rm -f $FOLDER_B/${file_prefix}.*
cp $file_a $FOLDER_B/
done
看懂再用,胡乱就用俺不对后果负责。
|
自己思考一下完全能写出来
首先ls得到a文件夹下的所有文件 保存到变量
然后循环该变量 截取变量扩张名之前的文件名 测试b目录是否存在该文件
如果有直接mv覆盖
首先ls得到a文件夹下的所有文件 保存到变量
然后循环该变量 截取变量扩张名之前的文件名 测试b目录是否存在该文件
如果有直接mv覆盖
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。