Chciałbym utworzyć specjalny plik podobny do /dev/null
lub /dev/random
, w którym plik tak naprawdę nie istnieje, ale można go odczytać tak samo, z tym wyjątkiem, że mógłbym ustawić ograniczenie widocznego rozmiaru pliku.
Innymi słowy, chcę utworzyć specjalny plik, w którym (zakładając, że ustawiłem limit na 500 GB), kiedy „cat” plik, wyśle wszystkie 500 GB pliku, a następnie zatrzyma się. Musi działać tak samo jak rzeczywisty plik 500 GB, ale bez zajmowania miejsca. Zawartość tego pliku nie ma znaczenia, może to być wszystko \0
jest jak /dev/null
, lub po prostu mały ciąg wysyłane w kółko, czy cokolwiek innego.
Czy to jest coś, co można zrobić? Jedyne, co zdalnie zamknąłem, jakie udało mi się znaleźć, to strony podręcznika, o których mówiłem mknod
, ale te nie były zbyt pomocne.
źródło
Poza wspomnianym już przenośnym rozwiązaniem opartym na dd / seek, niektóre Uniksy mają wyspecjalizowane polecenia:
Przynajmniej w systemach Solaris , MacOS / X i Irix :
W systemie HP-UX prealloc , w systemie AIX lmktemp. i wiele dystrybucji Linuksa jest obcinanych
źródło
Jeśli nie musisz szukać ponownie w pliku, możesz użyć nazwanego potoku:
Oczywiście do generowania danych w potoku można użyć dowolnego innego polecenia, w tym złożonego skryptu.
źródło
Dzięki dd możesz określić rozmiar bloku i liczbę, a tym samym ograniczyć rozmiar w następujący sposób:
Jeśli chcesz z niego czytać, po prostu potokuj:
Kiedyś każda instalacja Linuksa, którą wykonałem, zawierała niektóre narzędzia sieciowe, portmap, inet.d i tak dalej, aw inet.d, gdzie niektóre usługi zawsze były określone, jedna z nich została opisana / nazwana chargeen, jeśli dobrze pamiętam.
(... minutę później ...)
Tak. W / etc / services znajdziesz
Sądzę więc, że jest to usługa testująca coś, która wysyła znaki - może losowe - przez sieć. Na moim komputerze znajduję /etc/xinet.d/chargen. Jest więcej informacji:
Nie wiem jednak, jak go używać do swoich celów.
źródło