- tar завершает работу в «Cannot stat: нет такого файла каталога», почему?
- [Linux] adb: error: cannot stat ‘/usr/local/bin/scrcpy-server.jar’: No such file or directory #660
- Comments
- leinardi commented Jul 22, 2019 •
- rom1v commented Jul 22, 2019
- leinardi commented Jul 22, 2019
- amanjaymariner commented Nov 9, 2019
- rom1v commented Nov 9, 2019
- amanjaymariner commented Nov 9, 2019
- amanjaymariner commented Nov 9, 2019
- Почему я продолжаю получать «cp: cannot stat »: No such file or directory» или «cp: missing opereand» в моем сценарии bash
- 2 ответа
- ru_linux
- Русскоязычное Linux-сообщество
tar завершает работу в «Cannot stat: нет такого файла каталога», почему?
Я пытаюсь создать файл tar.gz с помощью следующей команды:
Затем он начинает создавать файлы (много файлов в папке), но затем я получаю следующую ошибку:
Я не вижу описания этой ошибки, что это значит?
Удалить — из vcfz вариантов. tar не нужен дефис для опций.
Аргументом для -f опции является дефис z . Таким образом, команда пытается выполнить архивирование dvr_rdk_v1.tar.gz и вызывается в dvr_rdk архиве z . Без дефиса семантика параметров изменяется, так что следующий аргумент в командной строке, то есть имя файла вашего архива, становится аргументом для f флага.
Также проверьте разрешение на запись в каталог, из которого вы выполняете команду.
-f Параметр должен непосредственно предшествовать имя файла. Итак, используйте tar -vczf filename.tar.gz вместо -vcfz
Команда дегтя исторически была одна из немногих команд , которые не следуют в Unix директивы коммунального предприятия синтаксисом .
Страница стандартов для tar говорит:
f
Используйте первый файловый операнд (или второй, если b уже указан) в качестве имени архива вместо системно-зависимого значения по умолчанию
Хотя правила синтаксиса включают это:
Рекомендация 5.
Один или несколько параметров без аргументов-параметров, за которыми следует не более одного параметра, который принимает аргумент-параметр, должны приниматься при группировании за одним разделителем ‘-‘.
Источник
[Linux] adb: error: cannot stat ‘/usr/local/bin/scrcpy-server.jar’: No such file or directory #660
Comments
leinardi commented Jul 22, 2019 •
I built and installed scrcpy (git tag v1.9) on Fedora 30 following the instructions from the readme but, when I tried to start it, I got this error:
Looks like that ninja is installing scrcpy-server.jar in /usr/local/share/scrcpy/scrcpy-server.jar but scrcpy is looking for it in /usr/local/bin/scrcpy-server.jar .
Symlinking it didn’t work:
A workaround is to provide a copy of the sever on that path:
The text was updated successfully, but these errors were encountered:
rom1v commented Jul 22, 2019
You need few commits after v1.9. Just git pull .
leinardi commented Jul 22, 2019
Yep, can confirm that current master is working 👍
amanjaymariner commented Nov 9, 2019
scrcpy
INFO: scrcpy 1.10 https://github.com/Genymobile/scrcpy
adb: error: cannot stat ‘/usr/local/share/scrcpy/scrcpy-server.jar’: No such file or directory
ERROR: «adb push» returned with value 1
os — deepin linux distro
rom1v commented Nov 9, 2019
How did you install it?
It seems the file is not there:
amanjaymariner commented Nov 9, 2019
i installed it using sudo snap install scrcpy
then core 18 error was coming so i installed core by sudo snap install core
then again downloaded scrcpy it got installed
now when i am running scrcpy
INFO: scrcpy 1.10 https://github.com/Genymobile/scrcpy
adb: error: cannot stat ‘/usr/local/share/scrcpy/scrcpy-server.jar’: No such file or directory
ERROR: «adb push» returned with value 1
this error is coming
amanjaymariner commented Nov 9, 2019
daemon not running; starting now at tcp:5037
ADB server didn’t ACK
Full server startup log: /tmp/adb.1000.log
Server had pid: 6705
— adb starting (pid 6705) —
adb I 11-10 02:59:49 6705 6705 main.cpp:57] Android Debug Bridge version 1.0.39
adb I 11-10 02:59:49 6705 6705 main.cpp:57] Version 1:8.1.0+r23-5
18.04
adb I 11-10 02:59:49 6705 6705 main.cpp:57] Installed as /snap/scrcpy/174/usr/lib/android-sdk/platform-tools/adb
adb I 11-10 02:59:49 6705 6705 main.cpp:57]
error: could not install smartsocket listener: Permission denied
failed to start daemon
adb: error: failed to get feature set: cannot connect to daemon
ERROR: «adb push»
Источник
Почему я продолжаю получать «cp: cannot stat »: No such file or directory» или «cp: missing opereand» в моем сценарии bash
Я пишу сценарий для установки debian, и эта ошибка меня расстраивает:
cp: cannot stat »: нет такого файла или каталога
cp: отсутствует операнд
Эти файлы находятся в текущем каталоге, в котором находится сценарий .
В чем, по-видимому, заключается проблема, и каковы лучшие методы и решения?
2 ответа
Вот ответ на эту проблему, данный в комментарии сэра @steeldriver на родственном сайте .
Принимая во внимание ваш предыдущий вопрос, sudo -u user bash работает, но $HOME не меняется соответствующим образом. Я предполагаю, что вы хотите, чтобы $HOME расширился до домашнего каталога $USER1’s — для этого , вам, вероятно, потребуется вызвать оболочку входа, добавив -i или —login в свой sudo вызов
Итак, теперь это выглядит так .
Но возникает новая проблема:
Причина этой ошибки заключается в том, что оболочка входа в систему имеет каталог /home/user1 в качестве текущего каталога, а не каталог, в котором выполняется сценарий, в котором скрывается этот файл .bashrc .
Я решил это, жестко закодировав каталог, где это необходимо, но если у кого-то есть способ использовать переменную, которая будет очень полезна, спасибо
Я решил последний кусок головоломки следующим образом:
Делаем мою переменную CURRENTDIR глобальной для всех команд входа в bash .
В Amazon Linux / etc / profile говорится:
Имея это в виду, я создал bash_profile.sh в /etc/profile.d/ .
Не забывайте, что, вероятно, потребуется выйти / войти, чтобы принять изменения.
Вы запускаете другой bash через sudo. BASHRC — это локальная переменная, которая не видна дочерним процессам.
Другая проблема возникнет из-за sudo: если / etc / sudoers содержит параметр Defaults env_reset , то sudo отбросит почти все переменные env (кроме PATH).
Источник
ru_linux
Русскоязычное Linux-сообщество
Есть две Убунты 16.04.2
На одной вот так:
А на другой та же команда не катит:
Ессесно, директория там есть, и ключи в ней лежат.
Почему так?
текущая директория одинаковая /home/user, даже юзернеймы и uid одинаковые
а вот в кавычках ошибку выдают оба одинаково
тогда вопрос, почему на одном хосте работает без кавычек? и как заставить работать второй хост
Дело, с очевидностью, не в stat()-е, а в шелле. Посмотрите, совпадают ли на обоих хостах:
1. собственно user shell-ы
2. настройки глоббинга (для bash-а shopt -p | grep glob)
Очевидно же, что в одном случае в текущей директории есть ssh_host_dsa_key.pub, ssh_host_ecdsa_key.pub и ssh_host_rsa_key.pub, а в другом — нет. Поэтому в одном случае шелл раскрывает *, а в другом передает ее tar’у, который воспринимает ее как имя файла.
Tar не делает glob-подстановки при создании архива, кроме как в опции —exclude (и еще паре других, менее часто используемых). При извлечении есть —wildcards (расширение GNU), но оно применяется исключительно к файлам, которые содержатся в архиве.
В целом, использование -C для создания архива — так себе идея. Все, что эта опция делает — это вызывает на старте tar chdir(2). Вызов cd в сабшелле даст абсолютно тот же эффект, но даст возможность пользоваться подстановками, например:
( cd /etc/ssh/ && tar cvf /dev/null *.pub )
скобки как раз создают сабшелл в баше (функционально аналогично bash -c «cd /etc/ssh/ && tar cvf /dev/null *.pub»)
—strip-components выше уже советовали.
Справедливости ради, скажем, в FreeBSD tar поддерживает опцию —include, которая как раз делает (примерно) то, что нужно. Но в GNU tar этой опции, насколько я знаю, нет.
Источник