【发布时间】:2013-08-05 00:55:55
【问题描述】:
有什么方法可以让它工作吗?
pFile=find ${destpath} (( -iname "${mFile##*/}" )) -o (( -iname "${mFile##*/}" -a -name "*[],&<>*?|\":'()[]*" )) -exec printf '.' \;| wc -c
我需要 pFile 返回具有相同文件名的文件数,如果没有,则返回 0。 我必须这样做,因为如果我只使用:
pFile=find ${destpath} -iname "${mFile##*/}" -exec printf '.' \;| wc -c
如果有元字符相同的文件名,则不返回。
谢谢
编辑:
"${mFile##*/}" 在起始文件夹中作为输出文件名,没有路径。
echo "${mFile##*/}" -> goofy.mp3
示例 在我的开始文件夹中:
goofy.mp3 - mickey[1].avi - donald(2).mkv - scrooge.3gp
在我的目标文件夹中:
goofy.mp3 - mickey[1].avi -donald(2).mkv -donald(1).mkv -donald(3).mkv -minnie.iso
我想要这个:
回显 pFile -> 3
与:
pFile=find ${destpath} -iname "${mFile##*/}" -exec printf '.' \;| wc -c
回显 pFile -> 2
与:
pFile=find ${destpath} -name "*[],&<>*?|\":'()[]*" -exec printf '.' \;| wc -c
回显 pFile -> 4
使用相同的文件名我的意思是: /path1/mickey[1].avi = /path2/mickey[1].avi
【问题讨论】:
-
天哪!你的台词很漂亮,比如说,很有趣^^猜猜你给出一个输入和输出的例子会更容易。
-
你说我需要pFie返回同名文件的数量。那将是
find . -name "$my_name" | wc -l,但您对同名的定义似乎与我的不同。你能更彻底地解释一下同名是什么意思吗? -
/path1/mickey[1].avi 和 /path2/mickey[1].avi 具有相同的文件名。我的意思是同名对不起我的英语。