Como verificar se um arquivo está no diretório atual ou em seus subdiretórios?

2

Eu uso find para procurar por arquivos em um diretório ou em seus subdiretórios. find . -iname '*.csv' , e isso me dá a seguinte saída

./2012/t1.csv
./2012/t2.csv
./2013/t1.csv

Agora, desejo verificar em um script se o arquivo t1.csv está na pasta atual ou em um dos subdiretórios. Se estiver em um subdiretório, meu script deve descer para esse diretório. Como eu posso fazer isso?

    
por Ubuntuser 05.09.2013 / 06:48

3 respostas

5

Para verificar apenas o t1.csv , você pode usar:

find . -name 't1.csv' 

Agora, para ir no primeiro diretório onde t1.csv arquivo é encontrado, você pode usar:

cd $(dirname $(find . -name 't1.csv' 2>/dev/null | head -1)  2>/dev/null)

    
por Radu Rădeanu 05.09.2013 / 07:08
2
if [ -f t1.csv ]
then
    echo "File is in target dir"
else
    cd 'dirname $(find . -iname 't1.csv')'
    pwd
fi
    
por sorgel 05.09.2013 / 07:34
1

Há uma discussão bastante abrangente sobre isso aqui:

... veja também as páginas man do grep, é claro

Não tenho certeza sobre a segunda parte da sua pergunta, mas espero que você esteja na direção certa.

    
por Mr.President 05.09.2013 / 06:54