Перемещение по дереву каталогов и печать файлов с неправильными именами

#bash

#баш

Вопрос:

Если я вызову эту функцию с помощью ./usr и получу файл с неправильным именем meowmeowmeow11 в каком-нибудь подкаталоге. Как я могу просто вывести /usr/cat/meowmeowmeow111, а не полный путь.

 func() {
names=`ls -A $1 | sort`

for name in $names
do 
    if [[ -d $name ]]; then
        if [ -r $name ]; then
            cd $name
            func "."
            cd ..
        else
            echo "Lack of permission to read a subdirectory."
        fi
    else
        if [[ ${#name} -gt 14 ]]; then  // Check if name is over 14 characters
            realpath $name // Not sure
        fi
    fi
done
}
 

Комментарии:

1. Почему бы не выполнить синтаксический ls анализ?

2. Что вы хотите, чтобы оно выводило? разве /usr/cat/meowmeowmeow111 уже не указан полный путь?

3. Например: если я передам ./func ./lab1/ lab2. Я должен вернуть /lab1/lab/meowmeowmeow111, а не полный путь от корня