Nowe posty

Autor Wątek: listing plików pomijając linki twarde  (Przeczytany 2427 razy)

perfi

  • Gość
listing plików pomijając linki twarde
« dnia: 2009-08-07, 10:19:52 »
witam


mam dość trudny dla mnie problem ponieważ dopiero od niedawna zacząłem pracę na linuxie. sprawa wygląda następująco:

potrzebuję stworzyć listing plików w katalogach i podkatalogach, ale pomijając pliki które są linkami twardymi, gdyż program który ma później pracować na plikach zawartych w danym katalogu wywołuje się też na plikach przypisanych przez w.w. linki twarde, co niestety ingeruje w pliki które nie mają być zmieniane. w manualu ls'a nic nie mogę znaleźć na ten temat

moj ls wygląda tak:

#!/bin/sh


ls -R -1 $1/*




pozdrawiam

jk33

  • Gość
listing plików pomijając linki twarde
« Odpowiedź #1 dnia: 2009-08-07, 12:22:56 »
Z tego co wiem nie da się.
Dlaczego?

Jak mam jakiś plik w systemie plików, to jego zawartość jest gdzieś na dysku. Dodatkowo, żeby się do niego odwołać to jeszcze w jakimś katalogu znajduje się, nazwijmy to odnośnik, drogowskaz, do takiego pliku. I link twardy to jest po prostu taki dodatkowy wpis w jakimś innym katalogu i być może z inną nazwą. Cała reszta jest identyczna jak w tym pierwotnym odnośniku, w tym momencie jest nie do odróżnienia, który był pierwszy. (Stąd tez wynikają ograniczenia linków twardych - to, że mogą być robione tylko w obrębie jednej fizycznej partycji)

Nie widzę żadnego prostego rozwiązania problemu.
Jedyne co mi przychodzi do głowy, to jakieś filtrowanie po numerach i-node'ów. Można podejrzeć na przykład poleceniem stat.