camurso_ Posted January 4, 2012 Share Posted January 4, 2012 pessoal, tenho um ficheiro de texto que tem lá dentro apenas o nome de um outro ficheiro. Como posso fazer, num único comando, para que o linux me encontre o ficheiro que está escrito no ficheiro de texto(obviamente que só tenho o nome e não o path completo do ficheiro...)? Link to comment Share on other sites More sharing options...
Nazgulled Posted January 4, 2012 Share Posted January 4, 2012 (edited) Tenta isto: cat nome_ficheiro_com_outro_ficheiro_la_dentro | find / -name Se o ficheiro em questão estiver indexado no sistema, podes usar o locate e deve ser mais rápido: cat nome_ficheiro_com_outro_ficheiro_la_dentro | locate Edited January 4, 2012 by Nazgulled Link to comment Share on other sites More sharing options...
camurso_ Posted January 4, 2012 Author Share Posted January 4, 2012 Tenta isto: cat nome_ficheiro_com_outro_ficheiro_la_dentro | find / -name Se o ficheiro em questão estiver indexado no sistema, podes usar o locate e deve ser mais rápido: cat nome_ficheiro_com_outro_ficheiro_la_dentro | locate find: missing argument to `-name' e depois $ cat file.txt | locate Usage: locate [-d path | --database=path] [-e | -E | --[non-]existing] [-i | --ignore-case] [-w | --wholename] [-b | --basename] [--limit=N | -l N] [-S | --statistics] [-0 | --null] [-c | --count] [-P | -H | --nofollow] [-L | --follow] [-m | --mmap] [-s | --stdio] [-A | --all] [-p | --print] [-r | --regex] [--regextype=TYPE] [--max-database-age D] [--version] [--help] pattern... Eu também pensei nessas abordagens e por isso é que abri o tópico... Link to comment Share on other sites More sharing options...
Nazgulled Posted January 4, 2012 Share Posted January 4, 2012 Já não uso Linux há muito tempo, posso ter trocado a ordem dos pipes, experimenta ao contrário. Mas na minha cabeça faz mais sentido como disse originalmente lol... Mas não tá a dar :/ Mas acho que não dá porque os pipes redireccionam o stdin/stdout mas os comandos não funcionam porque estão à espera de argumentos e não de input. Sendo assim, não estou mesmo a ver como isso é possível só com comandos linux. É algo pontual ou vais precisar disso constantemente? Caso precises mesmo disso, programar algo em bash talvez seja mais fácil. Mas isso já não sei ajudar... Link to comment Share on other sites More sharing options...
camurso_ Posted January 4, 2012 Author Share Posted January 4, 2012 problema resolvido find -iname `cat file.txt` Tem de se usar acento grave. ;) Obrigado Link to comment Share on other sites More sharing options...
Nazgulled Posted January 4, 2012 Share Posted January 4, 2012 Era isso que estava mesmo a ver agora num documento que tinha aqui de Bash Programming. Já agora deixo aqui o que fiz: #!/bin/sh TERM=`cat file.txt` find -name $TERM Bastava teres isto como comando.sh, dar permissões 755 e conseguias executar isso. Mas a tua solução é mais simples, principalmente se for pontual. Link to comment Share on other sites More sharing options...
Gizbo Posted January 4, 2012 Share Posted January 4, 2012 linux é buéda fixe. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now