Intereting Posts
неустойчивость сворачивания zram Как использовать вывод команды для процесса в цикле в Bash? Как я могу зашифровать свой предыдущий подраздел GPG после создания нового? Как установить драйвер nvidia версии 375? Раздел «X» не начинается с границы физического сектора Wget: конвертировать ссылки и избежать повторной загрузки уже загруженных файлов? Oracle Linux yum не работает после обновления Undeleteable 33GiB файл на USB-Stick 4GiB. fsck говорит «clean», Ошибка: «Операция не разрешена» «Du» показывает, что что-то занимает много места, но что именно? Почему SIGHUP игнорируется демоном (3) только во FreeBSD? Почему unix не может быть объектно ориентированным или, по крайней мере, организованным Ярлык для перемещения windows в другое рабочее пространство (оставайтесь сфокусированным на текущем рабочем пространстве) Мост Debian не поддерживает конфигурацию IPv6 Как создать резервную копию запущенной системы? Где находятся скрипты инициализации SSH?

Почему не работает эта команда sudo mv с шаблоном?

Я все еще новичок в Linux, и я думаю, что на это должен быть простой ответ, но я не могу понять, почему это не работает!

У меня есть папка в моем домашнем каталоге (ну, несколько уровней вниз), называемый установленными плагинами. Я хочу передать все содержимое этой папки (около 15 файлов .jar) в разные папки, также называемые установленными плагинами.

Это то, что я пытаюсь:

$ sudo mv /home/jira-plugins/installed-plugins/* /var/atlassian/application-data/jira/plugins/installed-plugins/ mv: cannot stat `/home/jira-plugins/installed-plugins/*': No such file or directory 

Какая у меня ошибка?

Папка определенно не пуста. Вот вывод ls :

 $ sudo ls /home/jira-plugins/installed-plugins analytics-client-3.15.jar plugin.2223138796603023855.jira-importers-plugin-6.0.30.jar atlassian-chaperone-2.0.3.jar plugin.330169947367430109.jira-fisheye-plugin-6.2.8.jar atlassian-client-resource-1.0.jar plugin.4363048306537053933.jeditor-2.1.7.2.jar atlassian-pocketknife-api-commons-plugin-0.19.jar plugin.4438307615842123002.jira-ical-feed-1.0.4.jar atlassian-pretty-urls-plugin-1.8.jar plugin.461510159947098121.jira-issue-collector-plugin-1.2.5.jar base-hipchat-integration-plugin-7.8.24.jar plugin.5630909028354276764.atlassian-universal-plugin-manager-plugin-2.7.8.jar base-hipchat-integration-plugin-api-7.8.24.jar plugin.6920509095052318016.atlassian-bonfire-plugin-2.9.13.jar hipchat-core-plugin-0.8.3.jar plugin.6952408596192442765.atlassian-bonfire-plugin-2.8.2.jar hipchat-for-jira-plugin-1.2.11.jar plugin.7079751365359230322.jira-importers-bitbucket-plugin-1.0.8.jar jira-email-processor-plugin-1.0.29.jar plugin.7451827330686083284.atlassian-universal-plugin-manager-plugin-2.21.4.jar jira-fisheye-plugin-7.1.1.jar plugin.7498175247667964103.jira-importers-redmine-plugin-2.0.7.jar jira-ical-feed-1.1.jar plugin.7803627457720701011.jira-importers-plugin-3.5.3.jar jira-issue-nav-components-6.2.23.jar plugin.7977988994984147602.jira-bamboo-plugin-5.1.6.jar jira-servicedesk-2.3.6.jar plugin.8372419067824134899.jira-importers-plugin-5.0.2.jar jira-workinghours-plugin-1.5.5.jar plugin.9081077311844509190.jira-fisheye-plugin-5.0.13.jar plugin.1260160651631713368.stp-3.0.11.jar plugin.9128973321151732551.jira-fisheye-plugin-6.3.10.jar plugin.2076016305412409108.jira-fisheye-plugin-3.4.10.jar plugin-license-storage-plugin-2.8.jar plugin.218965759549051904.jira-importers-plugin-6.1.5.jar querydsl-4.0.7-provider-plugin-1.1.jar plugin.2211202876682184330.jira-ical-feed-1.0.12.jar stp-3.5.10.jar 

Это почти наверняка связано с тем, что ваша обычная учетная запись пользователя не может получить доступ к каталогу, поэтому оболочка не может перечислить файлы, которые будут соответствовать шаблону.

Вы можете легко это подтвердить с помощью такой команды

 ls /home/jira-plugins/installed-plugins 

Если вы получите отказ в доступе, то оболочка не сможет расширять подстановочный знак * в этом каталоге.

Зачем? Рассмотрите свою команду

sudo mv / home / jira-plugins / Установленные плагины / * / var / atlassian / application-data / jira / plugins / установленные плагины /

Порядок обработки: (1) расширяет подстановочные знаки, (2) выполняет команду, которая в этом случае является sudo с некоторыми аргументами, которые соответствуют mv .

Вы можете решить проблему одним из двух способов

  1. Станьте root, а затем переместите файлы

     sudo -s mv /home/jira-plugins/installed-plugins/* /var/atlassian/application-data/jira/plugins/installed-plugins/ 
  2. Развернуть подстановочный знак после запуска sudo

     sudo bash -c "mv /home/jira-plugins/installed-plugins/* /var/atlassian/application-data/jira/plugins/installed-plugins/" 

Как вы делаете sudo ls чтобы перечислить папку, я предполагаю, что один или несколько каталогов в пути не читаются обычными пользователями. Это объясняет поведение. Ключевое недоразумение здесь заключается в том, когда сделано расширение glob * . Это делается оболочкой перед вызовом любой команды. Если оболочка не имеет достаточных разрешений, она не может ее расширять.

Что происходит в этом случае более подробно:

  1. Ваша оболочка пытается расширить командную строку. Поскольку вы не имеете права читать /home/jira-plugins/installed-plugins как самостоятельно, он не сможет расширить шаблон glob /home/jira-plugins/installed-plugins/* . Это оставит его неизменным. После этого этапа * больше не является особенным.
  2. Ваша оболочка вызывает команду sudo с аргументами mv /home/jira-plugins/installed-plugins/* и /var/atlassian/application-data/jira/plugins/installed-plugins/
  3. sudo вызывает mv с аргументами /home/jira-plugins/installed-plugins/* и /var/atlassian/application-data/jira/plugins/installed-plugins/
  4. mv пытается переместить файл, фактически названный /home/jira-plugins/installed-plugins/* , но он не существует и, следовательно, сообщение об ошибке.