Я не уверен, почему исходная строка не работала. Следующая команда работает для меня.
найти / -имя (имя файла *)| grep '(имя_файла.расширение )'| xargs cp -т./
В моем случае имя файла *представляет собой набор файлов с одинаковым именем и разными типами файлов (txt, zip и т. д. ). Я делаю grep, чтобы узнать только файл filename.txt и скопировать его в мой каталог назначения (, который в настоящее время./ ).
Судя по информации, содержащейся в вопросе, к тому результату, который вы испытываете, приводят несколько разных факторов.
Ключевой принцип, о котором следует помнить, заключается в том, что в Linux доступно несколько различных оболочек, таких как dash, csh, bash и zsh. Оболочка — это просто любая программа, которая предлагает вам подсказку, принимает команды и возвращает вывод. Все «стандартные» оболочки имеют сходство, но также имеют различия в функциональности и способе настройки.
Кроме того, каждый дистрибутив выбирает оболочку по умолчанию для новых пользователей, которой часто является (, но не всегда )Bash. Для дистрибутивов, предпочитающих производительность и сокращение нестандартных -расширений, часто выбирают sh
(часто путем создания символической ссылки на другую оболочку, которая затем запускается в режиме совместимости sh -).
Мы видим в выводе /etc/passwd
в одном из комментариев, что Kali по умолчанию предоставляет вашему пользователю jeff оболочку sh
. Несмотря на то, что этот вариант очень эффективен, в нем отсутствуют такие функции, как настраиваемая подсказка и завершение команды.
Таким образом, первым шагом для устранения проблемы будет запуск такой команды:
sudo chsh -s /bin/bash jeff
Как уже обсуждалось в комментариях, похоже, остальная часть проблемы сводилась к разрешениям. Файлы конфигурации оболочки каждого пользователя, такие как ~/.bashrc
, должны быть доступны для чтения пользователем.
Обратите внимание, что настройки оболочки по умолчанию могут быть изменены для всей системы -для новых пользователей путем редактирования (или добавления)/etc/defaults/useradd
и каталога /etc/skel/
.
Мой/etc/defaults/useradd
(для Void Linux )содержит:
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
Файлы в /etc/skel
копируются в домашний каталог нового пользователя в качестве побочного -эффекта выполнения команды useradd
.