Tak, zawsze miałem wątpliwości, jak przekierowanie działa w następujących sytuacjach:Dlaczego symbol przekierowania zmienia zachowanie ls?
wpisuję „ls”, a wszystkie nazwy plików są oddzielone białymi spacjami:
test$ touch a b c test$ ls a b c
używam a ">" przekierować STDOUT do pliku:
test$ ls > ls.txt test$ cat ls.txt a b c ls.txt
To ja Interesujące jest to, że format zmienia się, a nazwy plików są oddzielone znakami nowego wiersza. Wydaje się, że dane wyjściowe generowane są przez ls -1
.
Dlaczego dane wyjściowe w tym drugim przypadku różnią się od danych wyjściowych w poprzednim przypadku? Czy ls może zobaczyć symbol ">", aby zmienić jego zachowanie?
Doskonałe pytanie. Miliony ludzi używają 'ls' od lat i zastanawiają się nad tym samym. –
Jeśli * chcesz * kolumny w przekierowanych danych wyjściowych, spróbuj 'ls -C'. –