Van valakinek ötlete, hogy a find -exec kapcsolója után hogyan tudok a megtalált file könyvtárára hivatkozni?
Vmi ilyesmire gondolok:
find -type f -iname "*.txt" -exec echo `dirname \{\}` -> `basename \{\}` \;
Csak persze a backtick már jóelőre végrehajtódik...
- 2530 megtekintés
Hozzászólások
find -type f -iname "*.txt" -exec echo `dirname \{\}` -> `basename \{\}` \;
Ezt kene valahogy megvedeni eloszor is.... pl.:
find -type f -iname "*.txt" -exec echo `dirname \{\}` '->' `basename \{\}` \;
persze ez az ellen nem ved :-)
viszont:
find -type f -iname "*.txt" -exec dirname {} \; -exec basename {} \;
mukodni latszik, azaz:
bla/bla
bla
bla/blu
ble
meg lehet igy is:
for f in `find -type f -iname "*.txt"`; do echo `dirname $f` -> `basename $f`; done
persze, ha van space a file-nevben, akkor ilyesmi:
IFS=$'\n' for f in `find -type f -iname "*.txt"`; do echo `dirname $f` -> `basename $f`; done
ha enter is van, akkor szivas :-)
de lehet meg igy is:
$ cat kiir.sh
#!/bin/bash
echo `dirname $1` -\> `basename $1`
$ find -type f -iname "*.txt" -exec kiir.sh {} \;
Zsiraf
p.s.: igy is lehet ugyeskedni:
find -type f -iname "*.txt" -exec sh -c 'f={}; echo `dirname $f` "->" `basename $f`' \;
p.s2.: Ja, a legegyszerubb persz az, hogy:
find -type f -iname "*.txt" -printf "%h -> %f\n"
;-) ;-)
- A hozzászóláshoz be kell jelentkezni
Köszönöm, ezt kerestem.
Természetesen nem az echo parancsot akarom végrehajtatni, az csak példa volt. (Így maradhatott bent a -> is, effektive nem próbáltam ki a parancsot...)
Amire szükségem volt az a for ciklus, remekül megfelel az adott feladatra. Ha nem vagyok tiszta zombi az este, még akár eszembe is juthatott volna... Mindenesetre kösz mégegyszer.
Babszem.
- A hozzászóláshoz be kell jelentkezni
find -type f -iname "*.txt" -printf "%h -> %f\n"
jo dolog a man ;-)
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
és ha exec-cel akarja használni (mint ahogy a subject-ben is írta)..?
- A hozzászóláshoz be kell jelentkezni
Akkor a vegere odateszi, hogy:
find ... | xargs -n1 ide jon a lefuttattando parancs
- A hozzászóláshoz be kell jelentkezni
dejó, tnx:)
- A hozzászóláshoz be kell jelentkezni
A -printf csak halkan jegyzem meg, hogy gnufind-es feature, és jófajta hordozhatatlan tudást eredményez...
- A hozzászóláshoz be kell jelentkezni
Én csinálnék egy aliast/fv-t a shellben, vagy egy scriptecskét, és azt exec-elném meg -- randa, de fincsi :-))
- A hozzászóláshoz be kell jelentkezni