Załóżmy, że mam katalogu /dir
, wewnątrz której znajdują się 3 dowiązania do innych katalogów
/dir/dir11
, /dir/dir12
oraz /dir/dir13
. Chcę listę wszystkich plików w dir
tym te w dir11
, dir12
i dir13
.
Aby być bardziej ogólnym, chcę wymienić wszystkie pliki, w tym te w katalogach, które są dowiązaniami symbolicznymi. find .
, ls -R
itp. zatrzymują się na dowiązaniu symbolicznym bez przechodzenia do nich w celu wyświetlenia dalszej listy.
Odpowiedzi:
-L
Opcjals
będzie osiągnąć to, co chcesz. Eliminuje dowiązania symboliczne.Więc twoje polecenie byłoby następujące:
Możesz to również osiągnąć za pomocą
Ta
-follow
opcja kieruje find podążanie za symbolicznymi dowiązaniami do katalogów.W systemie Mac OS X użyj
jak
-follow
zostało wycofane.źródło
-follow
- i powiedziałem, że nie można znaleźć folderuollow
find -L .
- Miałem ten sam problem co @ S.Matthew_Englishfollow
tylko ścieżki do plików (pełna ścieżka do pliku), a nie ścieżka do katalogu, jak mam to zrobić?A co z drzewem ?
tree -l
będzie podążać za linkami symbolicznymi.Zastrzeżenie : napisałem ten pakiet.
źródło
ls
. Łatwiej jest też wkleić.-type f
oznacza, że wyświetli prawdziwe pliki (nie dowiązania symboliczne)-follow
oznacza, że będzie podążał za dowiązaniami symbolicznymi do Twojego katalogu-print
spowoduje wyświetlenie nazw plików.Jeśli chcesz mieć wyświetlacz typu ls, możesz wykonać następujące czynności
źródło
ls -L
opcjaKorzystanie ls:
od „man ls”:
Lub używając funkcji znajdź:
Ze strony podręcznika wyszukiwania:
Jeśli zauważysz, że chcesz podążać tylko za kilkoma dowiązaniami symbolicznymi (jak może tylko te z najwyższego poziomu, o których wspomniałeś), powinieneś spojrzeć na opcję -H, która podąża tylko za dowiązaniami symbolicznymi, które przekazujesz do niej w linii poleceń.
źródło
Wiedziałem, że
tree
jest odpowiedni, ale nie mam zainstalowanego drzewa. Tak, mam dość blisko zastępcę tutajźródło
źródło
-L
usuwa dowiązania symboliczne. Uniemożliwi to jednak wyświetlenie żadnych dowiązań symbolicznych do plików - będą one wyglądać jak wskazany plik.źródło
jeśli chcesz wydrukować całą zawartość pliku :
find . -type f -exec cat {} +
źródło