Które znaki są dozwolone, a które z nich należy wstawić w wierszu poleceń w różnych systemach operacyjnych?
Które znaki są dozwolone, a które z nich należy wstawić w wierszu poleceń w różnych systemach operacyjnych?
Odpowiedzi:
Dyskusja na temat znaków nazw plików znajduje się w artykule Wikipedii na temat nazw plików .
Ten esej może ci się przydać: Naprawianie nazw plików Unix / Linux / POSIX .
W tym artykule porównano OS X i Windows XP: X vs. XP: Zabronione znaki w nazwach plików (PDF, patrz str. 64–66).
Rzeczy, które nie powinny znajdować się w nazwach plików za 1000 $ Alex
Nie wiem, jakie znaki muszą być un -escaped, ale w Linuksie, to chyba nie jest dobry pomysł, aby uniknąć znaki, które mogą mieć szczególne znaczenie takie jak „n” (nowa linia), „t” (TAB) i innych, ale generalnie nie stanowi to problemu w operacjach na plikach. Być może masz na myśli raczej „uciekł” niż „nieskalowany”. Najczęściej spotykane są te, które powłoka będzie interpretować, takie jak spacja, „>”, „<” itd. Zobacz niektóre artykuły, które podłączyłem, aby je omówić.
Jedynymi znakami niedozwolonymi w nazwie pliku w * nix są NUL
i /
. W systemie Windows, tylko NUL
, :
i \
są naprawdę nie jest dozwolone, ale wiele aplikacji, które dodatkowo ograniczają także zapobieganie ?
, *
, +
, i %
.
W żadnym momencie znaki w nazwie pliku nie muszą być poprzedzane znakami, chyba że jest to wymagane, aby nie były interpretowane przez powłokę.
Jeśli utworzysz plik w systemie Windows za pomocą Eksploratora przy użyciu jednego z następujących znaków, będzie to narzekać, że znaki nie są dozwolone:
\ / : * ? " < > |
Dobry odnośnik znajduje się tutaj:
Nazewnictwo plików, ścieżek i przestrzeni nazw
http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx
Microsoft stwierdza dalej:
„... na platformach komputerowych z systemem Windows nieprawidłowe znaki ścieżki mogą zawierać znaki ASCII / Unicode od 1 do 31, a także cudzysłów (”), mniej niż (<), większy niż (>), potok (|), backspace (\ b), null (\ 0) i tab (\ t). "
http://msdn.microsoft.com/en-us/library/system.io.path.getinvalidpathchars.aspx
\ / : * ? " < > |
od nich wszystkich i utworzyć je za pomocą mkdir na moim systemie GNU / Linux. Możesz także użyć mkdir '?'
do utworzenia ?
katalogu. Użyłem ramdysku i systemu plików XFS do przetestowania tego.
W systemie Linux i innych systemach zgodnych z POSIX „/” jest zarezerwowane, ponieważ jest separatorem katalogów, a „\ 0” (znak NULL) oznacza koniec łańcucha. Wszystko inne jest dozwolone.