Ustalanie, czy argument wygląda jak poprawna ścieżka

0

Piszę skrypt bash, który musi wykonać jakąś operację na argumencie, który jest ścieżką Ścieżka może odpowiadać istniejącemu plikowi w systemie użytkownika lub nie, więc chciałbym sprawdzić, czy argument wygląda na jego twarzy pasuje do formatu ścieżki, w sposób, który nie polega na testowaniu niektórych istniejących plików.

Mam nadzieję, że jest na to sposób bez wyrażenia regularnego lub innego dopasowania wzorca; Bałbym się pominąć jakąś dziwaczną skrzynkę - idealnie chciałbym wiedzieć, czy jest jakieś wbudowane bash lub coś takiego, co zrobi dla mnie ten test.

tgies
źródło
Podaj przykład prawidłowej ścieżki, ponieważ nie można tego zrobić dla wszystkich ścieżek / przypadków. Możesz filtrować ścieżki, które spełniają twoje kryteria (nigdy nie słyszałem o wbudowanych, które mogłyby to obsłużyć). Podobnie jak głębokość ścieżki, rozszerzenie pliku, nazwa katalogu, zakres itp. Możesz utworzyć bazę danych z listą prawidłowych ścieżek plików, w przeciwnym razie nigdy nie dowiesz się, czy jest poprawna czy nie - bez sprawdzania.
okobaka,

Odpowiedzi:

4

Jedyną postacią, która nie jest dozwolona na ścieżce, jest NUL, dlatego nie ma potrzeby dostosowywania się do naturalnych ograniczeń. Jeśli chcesz sztucznie ograniczyć zestaw prawidłowych znaków (powiedzmy, jeśli używasz systemu plików niezgodnego z POSIX), musisz sprawdzić poprawność znaków na sztywno.

Ignacio Vazquez-Abrams
źródło
1
Większość systemów plików nakłada również ograniczenia na długości ścieżek.
BatchyX
Istnieją inne ograniczenia (niektóre związane z systemem plików), takie jak całkowita długość i długość każdej nazwy. Ograniczenia standardowe gwarancje są raczej niewielkie, więc musisz sprawdzić instalację. Niestety, nie mogę teraz znaleźć sposobu, aby zapytać o system.
vonbrand