Jump to content

dúvida linux


camurso_
 Share

Recommended Posts

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

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 by Nazgulled
Link to comment
Share on other sites

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

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.