no bash isso funcionaria
if [ -e origin_directory/*.pdf ] ; then ln -nfs origin_directory/*.pdf . ; fi
EDIT: Caso você tenha muitos arquivos
if [ $(ls origin_directory/*.pdf | wc -l) -gt "0" ] ; then ln -nfs origin_directory/*.pdf . ; fi
Estou tentando criar links simbólicos para um conjunto de arquivos.
Suponha que eu queira vincular todos os arquivos com a extensão pdf
de um origin_directory
ao meu diretório atual.
Até agora eu tenho este comando:
ln -nfs origin_directory/*.pdf -t .
Isso funciona muito bem. O problema acontece se eu não tiver nenhum arquivo pdf
no meu origin_directory
, porque nesse caso um arquivo *.pdf
é criado no meu diretório atual e é um link quebrado.
Existe uma maneira de evitar isso?
no bash isso funcionaria
if [ -e origin_directory/*.pdf ] ; then ln -nfs origin_directory/*.pdf . ; fi
EDIT: Caso você tenha muitos arquivos
if [ $(ls origin_directory/*.pdf | wc -l) -gt "0" ] ; then ln -nfs origin_directory/*.pdf . ; fi
Se estiver usando bash
, execute primeiro
shopt -s failglob
Ou melhor, coloque seu .bashrc
Agora, sempre que você faz:
ln -nfs origin_directory/*.pdf -t .
Terá êxito ou falhará (com uma mensagem de erro e não fará nada).
do manual
failglob Se definido, os padrões que não correspondem aos nomes dos arquivos durante a expansão do nome do caminho resultam em um erro de expansão.