Jeśli chcę file2
dopasować zawartość do zawartości file1
, oczywiście mógłbym po prostu uruchomić cp file1 file2
.
Jednakże, jeśli chcę zachować wszystko o file2
wyjątkiem tej Contents-właściciela, uprawnień, rozszerzonych atrybutów, ACL, twardych linków, etc., etc., to ja nie chce uruchomić cp
. * W tym przypadku po prostu chcę plop zawartość file1
w file2
.
Wygląda na to, że:
< file1 > file2
Ale to nie działa. file2
jest obcięty do zera i nie jest napisany do. Jednak,
cat < file1 > file2
wykonuje pracę.
Zaskoczyło mnie, że pierwsza wersja nie działa.
Czy druga wersja to UUOC? Czy można to zrobić bez wywoływania polecenia, używając jedynie przekierowań?
Uwaga: Zdaję sobie sprawę, że UUOC jest bardziej pedantycznym punktem niż prawdziwy anty-wzór.
* Jak odkrył tniles09 , w rzeczywistości cp
będzie działać w tym przypadku.
<
...
file1
nie istnieje lub jest nieczytelny, i otwórz go <
przed >
otwarciem wyjścia, a następnie zastanów się, co się stanie, gdy pozwolisz cat
spróbować go otworzyć.
cat
(domyślnie), zasadniczo uruchamiając drugie polecenie. Zobacz odpowiedź Stéphane'a Chazelasa poniżej, aby uzyskać więcej informacji na ten temat niż mieści się w komentarzu.
< file1 > file2
czy chcesz, co chcesz, zależy od powłoki.