Korzystam z interaktywnej sesji bash. Utworzyłem niektóre deskryptory plików przy użyciu exec i chciałbym wymienić aktualny stan mojej sesji bash.
Czy istnieje sposób na wyświetlenie listy obecnie otwartych deskryptorów plików?
linux
bash
file-descriptors
open-files
Dangonfast
źródło
źródło
bash
nie jest częścią jądra, więc nie może wiedzieć, co robią inne procesy, nawet te, które uruchomił.Odpowiedzi:
Tak, wyświetli się lista wszystkich otwartych deskryptorów plików:
Oczywiście, jak zwykle: 0 to stdin, 1 to stdout, a 2 to stderr.
Czwarty to otwarty plik (do zapisu) w tym przypadku.
źródło
Zakładając, że chcesz wyświetlić listę deskryptorów plików podłączonych do dowolnego terminala, możesz użyć
lsof
/fuser
lub podobnych, takich jak:Te narzędzia są w zasadzie parsowane
/proc
, więc możesz uzyskać do nich dostęp/proc/$$/fd/
np .:źródło
\/pts\/
odrzuca otwarte pliki, takie jakexec 4>testfile.txt
Tylko sieć fd:
źródło