Plik binarny nie działa w Linuksie, chociaż plik jest obecny

0

Mam wywołanie binarne testbin w /x/eng/r1/scratch/user/.jef/testbin.

Kiedy idę do innego katalogu i próbuję wykonać plik binarny jako

$ /x/eng/r1/scratch/user/.jef/testbin

Dostaję błąd:

cannot find /x/eng/r1/scratch/user/.jef/testbin.bin

ale kiedy jestem w środku .jef katalog i wykonaj go jak

$ testbin

binarny jest wykonywany

Dlaczego szuka a .bin plik w pierwszej kolejności?


źródło
1
Mówisz, że binarny jest nazywany testbin ale błąd dotyczy testbin.bin. Który to jest? A dokładniej w jaki sposób próbujesz to wykonać?
chepner
tak, błąd tak mówi. próbuję go wykonać jako bash-3.2 $ / x / eng / r1 / scratch / user / .jef / testbin
opublikuj wyjście type -f testbin
Kevin
1
To jest nie na temat; należy do Superużytkownik
Ex Umbris
3
Rozmiar pliku (409 bajtów) powinien być głównym wskaźnikiem, że w rzeczywistości nie jest to plik binarny, ale prawdopodobnie jest to krótki skrypt powłoki, który następnie próbuje wywołać testbin.bin, ale nie potrafi poprawnie zlokalizować pliku i cd i / lub wykonaj go z pełną / względną ścieżką, tak jak tego potrzebuje.
twalberg

Odpowiedzi:

2

Ponieważ jest to mało prawdopodobne /x/eng/r1/scratch/user/.jef jest na twojej ścieżce, działa testbin sam, kiedy /x/eng/r1/scratch/user/.jef to katalog roboczy nie jest taki sam jak działający /x/eng/r1/scratch/user/.jef/testbin z innego katalogu. Bieganie testbin zamiast tego działa (z dźwięku) /usr/bin/testbin, który jest samodzielnym plikiem binarnym. (Brzmi jak .../.jef/testbin to po prostu opakowanie (być może nawet skrypt powłoki), który wywołuje brakujące testbin.bin.)

chepner
źródło
... /. jef / testbin był tylko kopią / usr / bin / testbin