2013-12-16 2 views
0

Я создал список файлов, используя 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 
+0

http://codereview.stackexchange.com лучшим место для этого вопроса –

+0

@AndyJones Спасибо , – KeithSmith

ответ

1

Для зачистки файла, я хотел бы использовать следующее (вместо AWK)

search_base=`basename ${name} | cut -d'.' -f1` 
Смежные вопросы