Я создал список файлов, используя find
, foundlist.lst
.Есть ли «лучший» способ найти список файлов в дереве каталогов
Команда находки просто find . -type f -name "<search_pattern>" > foundlist.lst
Теперь я хотел бы использовать этот список, чтобы найти копии этих файлов в других каталогах.
«Твист» в моих требованиях заключается в том, что я хочу искать только «базу» имени файла. Я не хочу включать расширение в поиск.
Пример:
./sort.cc
является членом списка. Я хочу искать все файлы шаблона sort.*
Вот что я написал. Оно работает. Мне кажется, что есть более эффективный способ сделать это.
./findfiles.sh foundfiles.lst /usr/bin/temp
#!/bin/bash
# findfiles.sh
if [ $# -ne 2 ]; then
echo "Need two arguments"
echo "usage: findfiles <filelist> <dir_to_search>"
else
filename=$1
echo "$filename"
while read -r line; do
name=$line
# change './file.ext' to 'file.*'
search_base=$(echo ${name} | sed "s%\.\/%%" | sed "s/\..*/\.\*/")
find $2 -type f -name $search_base
done < $filename
fi
http://codereview.stackexchange.com лучшим место для этого вопроса –
@AndyJones Спасибо , – KeithSmith