Jeśli chcę file2dopasować 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ść file1w file2.
Wygląda na to, że:
< file1 > file2
Ale to nie działa. file2jest 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.
<...
file1nie istnieje lub jest nieczytelny, i otwórz go < przed > otwarciem wyjścia, a następnie zastanów się, co się stanie, gdy pozwolisz catspró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 > file2czy chcesz, co chcesz, zależy od powłoki.