Эта команда:
find ./ -name "mybinaryrpm-1.0.24-1.1.i586.rpm"
дает вывод:
./DirectoryName/SubDirectory/mybinaryrpm-1.0.24-1.1.i586.rpm
но я хочу только вывод:
mybinaryrpm-1.0.24-1.1.i586.rpm
Как я могу получить это?
Что я действительно пытаюсь сделать:
- Прочитайте входной файл, который содержит список двоичных имен файлов, разделенных строкой
- Поиск файлов с соответствующими именами в текущем каталоге рекурсивно
- Если найдено более одного совпадения, рассмотрите только один результат поиска и скопируйте файл в соответствующий каталог назначения.
Текущий код:
while read line; do
binaryRpm=$(find ./ -name "$line" -exec basename {} \;)
echo " [ Read From File: $line ] <==> [ Find Command Searched: $binaryRpm ]"
## If found then copy the binary file to dest dir
## TODO: If Find Command finds more than One File with the
## Same Name, then ONLY ONE FILE MUST be Compared and copied to
## the Release Directory
if [ "$line" != "$binaryRpm" ]; then
echo "---------- Binary File Searching---------- "
continue
else
echo " !!!!!! Binary File Found ==> $binaryRpm !!!!!! "
fi
done < "$FILENAME"