Jak poprawnie używać polecenia wiersza polecenia `install` w Mac OS X?

1

Mam plik makefile, który instaluje wiele plików w docelowym katalogu kompilacji. Niektóre z nich są wykonywalne, inne nie.

Testowałem wcześniej installpolecenie z flagami -D -m 644dla plików niewykonywalnych w systemie Linux, ale teraz się zepsuło. Odkryłem, że -Dflaga nie jest dostępna w OSX / BSD i usunąłem ją. Chodzi o to, że muszę upewnić się, że katalogi komponentów na ścieżkach plików, które instaluję, są tworzone w razie potrzeby. Myślałem, że -dflaga pomoże, ale robiąc coś takiego:

install .DS_Store ./tmp/build/some_dir/

Ale narzeka, że some_dir„nie ma takiego pliku ani katalogu”, tzn. Nie istnieje (co jest prawdą). Następnie spróbowałem tego samego, co powyżej, ale z -dflagą i otrzymałem kolejny błąd:

install: .DS_Store istnieje, ale nie jest katalogiem

Chcę tylko bardziej lub mniej stabilny i ogólny sposób kopiowania plików do miejsca docelowego. Może powinienem się uciekać cp? Znam jednak niewielkie, ale ważne różnice między nimi.

amn
źródło

Odpowiedzi:

2

install -dinterpretuje wszystkie argumenty jako katalogi, które (mogą) wymagać utworzenia. Dlatego myślę, że musisz to zrobić jako dwa polecenia:

install -d ./tmp/build/some_dir/
install .DS_Store ./tmp/build/some_dir/
Gordon Davisson
źródło